test = defaultdict(defaultdict(list))
Vì defaultdict
yêu cầu bạn cung cấp cho nó một cái gì đó có thể được gọi là để tạo ra các phím cho các giá trị bị mất tích. list
có thể gọi được, nhưng defaultdict(list)
thì không. Đó là phiên bản defaultdict
và bạn không thể gọi số defaultdict
.
lambda
là một chức năng mà khi được gọi, trả về giá trị có thể được sử dụng trong từ điển, do đó, nó hoạt động.
Về cơ bản, defaultdict(list)
sẽ được đánh giá trướcdefaultdict
của bạn được khởi tạo, và bạn muốn Hoãn đó cho đến khi một phím mất tích đang gặp phải. Đây là lý do tại sao một đối tượng có thể gọi (một loại hoặc một chức năng) được sử dụng ở đây.
Tương tự cho 'danh sách' là, tất nhiên,' lambda: list() '. –