Vấn đềNối giá trị cho một danh sách trong từ điển gắn thêm giá trị cho tất cả các danh sách trong từ điển
tôi đang tạo ra một từ điển với danh sách trống rỗng như các giá trị theo cách sau.
>>> words = dict.fromkeys(['coach', 'we', 'be'], [])
Từ điển trông như thế này.
>>> words
{'coach': [], 'be': [], 'we': []}
Khi tôi thêm giá trị vào một danh sách, giá trị được thêm vào tất cả giá trị trong ví dụ này.
>>> words['coach'].append('test')
{'coach': ['test'], 'be': ['test'], 'we': ['test']}
Các Câu hỏi
Câu hỏi của tôi có hai phần. Đầu tiên, tại sao điều này lại xảy ra? Thứ hai, tôi có thể làm gì với nó? Đó là, làm thế nào tôi có thể nối thêm một giá trị vào chỉ một danh sách?
Tôi tưởng tượng rằng khi tạo từ điển, tôi đã tạo tất cả các danh sách trỏ đến cùng một đối tượng. Nhưng tôi không hiểu điều đó có thể là vì khi tôi nhập 0
thay vì []
trong tạo từ điển và sau đó thêm giá trị thay vì nối thêm chúng, các giá trị hoạt động khác nhau như thể chúng trỏ đến các đối tượng riêng biệt.
Tôi sẽ đánh giá cao mọi đầu vào. Cảm ơn bạn trước!