Câu hỏi của bạn là theo cách 'Pythonic' nhất.
Tôi nghĩ rằng đối với một vấn đề như thế này, cách Pythonic là một điều rất rõ ràng. Có nhiều cách để thực hiện giải pháp cho vấn đề này! Nếu bạn thực sự chỉ có 2 dicts thì các giải pháp cho rằng điều này là tuyệt vời vì chúng đơn giản hơn nhiều (và dễ đọc hơn và duy trì kết quả). Tuy nhiên, nó thường là một ý tưởng tốt để có giải pháp chung vì nó có nghĩa là bạn sẽ không cần phải sao chép số lượng lớn của logic cho các trường hợp khác, nơi bạn có 3 từ điển, ví dụ.
Là phụ lục, câu trả lời của phant0m rất hay vì nó sử dụng rất nhiều tính năng của Python để làm cho giải pháp có thể đọc được. Chúng tôi nhìn thấy một danh sách hiểu:
[d[key] for d in dicts if key in d]
Sử dụng rất hữu ích set
loại Python:
keys = set()
keys.update(d.keys())
Và nói chung, sử dụng tốt các phương pháp loại Python và globals:
d.keys()
keys.update(...)
keys.update
len(values)
tư duy và thực hiện một thuật toán để giải quyết vấn đề này là một điều, nhưng làm cho nó thanh lịch và dễ đọc bằng cách sử dụng sức mạnh của ngôn ngữ là những gì hầu hết mọi người sẽ coi là 'Pythonic'.
(Tôi sẽ sử dụng giải pháp phant0m của)
Tôi muốn giới thiệu sử dụng 'd2.copy () 'thay vì' dict (d2) '. Đó là một trifle nhanh hơn (và nhanh hơn cho một dict với vài mặt hàng, lên đến khoảng hai lần nhanh), và theo ý kiến của tôi một chút rõ ràng hơn. –
Tôi cũng nhân với 0,5 thay vì chia. – psihodelia