Tôi có một danh sách các từ điển, ví dụ:Làm thế nào để tạo ra một dict Python đơn lẻ từ một danh sách các dicts bằng cách tổng hợp các giá trị với các phím chung?
dictList = [
{'a':3, 'b':9, 'c':4},
{'a':9, 'b':24, 'c':99},
{'a':10, 'b':23, 'c':88}
]
Tất cả các từ điển có các phím cùng một ví dụ a, b, c. Tôi muốn tạo một từ điển duy nhất có cùng các khóa, trong đó các giá trị là tổng của các giá trị có cùng các khóa từ tất cả các từ điển trong danh sách gốc.
Vì vậy, cho ví dụ trên, sản lượng nên là:
{'a':22, 'b':56, 'c':191}
Điều gì sẽ là cách hiệu quả nhất để làm điều này? Tôi hiện đang có:
result = {}
for myDict in dictList:
for k in myDict:
result[k] = result.setdefault(k, 0) + myDict[k]
+1 và nếu họ không có tất cả các phím: dict ((key, sum (d.get (key, 0) cho d trong dictList)) cho khóa trong dictList [0])) –
@Nadia: cả câu trả lời của Brian và nhận xét của bạn cho cùng một mã – uolot
@paffnucy: không, chúng không/ – SilentGhost