Có ai biết nếu có một lớp tiêu chuẩn cho một từ điển vô hạn có thể lồng trong Python không?Từ điển lồng nhau vô tận trong Python
Tôi thấy bản thân mình lặp lại mô hình này:
d = defaultdict(lambda: defaultdict(lambda: defaultdict(int)))
d['abc']['def']['xyz'] += 1
Nếu tôi muốn thêm "lớp khác" (ví dụ d['abc']['def']['xyz']['wrt']
), tôi phải xác định khác làm tổ của defaultdicts.
Để khái quát hóa mẫu này, tôi đã viết một lớp đơn giản ghi đè __getitem__
để tự động tạo từ điển lồng nhau tiếp theo.
ví dụ:
d = InfiniteDict(('count',0),('total',0))
d['abc']['def']['xyz'].count += 0.24
d['abc']['def']['xyz'].total += 1
d['abc']['def']['xyz']['wrt'].count += 0.143
d['abc']['def']['xyz']['wrt'].total += 1
Tuy nhiên, có ai biết trước khi triển khai ý tưởng này không? Tôi đã thử dùng Google, nhưng tôi không chắc nó sẽ được gọi là gì.
Cảm ơn. Điều này đến gần nhất với những gì tôi đang tìm kiếm, và giúp tôi tìm ra giải pháp * chính xác *. – Cerin