Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Python - Kết hợp hai từ điển cộng giá trị cho khóa chung


Khi phân tích dữ liệu, thường cần gộp hai từ điển sao cho giá trị của các khóa trùng nhau được cộng lại. Bài viết demo hai cách thực hiện.

Vòng lặp và toán tử |

Duyệt khóa của dictB: nếu khóa cũng có trong dictA thì cộng giá trị, sau đó gộp hai dict bằng toán tử | (Python 3.9+).

Ví dụ

dictA = {'Mon': 23, 'Tue': 11, 'Sun': 6}
dictB = {'Wed': 10, 'Mon': 12, 'Sun': 4}

for key in dictB:
    if key in dictA:
        dictB[key] = dictB[key] + dictA[key]

res = dictA | dictB
print(res)

Kết quả:

Đầu ra

{'Mon': 35, 'Tue': 11, 'Sun': 10, 'Wed': 10}

Sử dụng Counter

Counter từ module collections tự động cộng giá trị khi cộng hai Counter object.

Ví dụ

from collections import Counter

dictA = {'Mon': 23, 'Tue': 11, 'Sun': 6}
dictB = {'Wed': 10, 'Mon': 12, 'Sun': 4}

res = Counter(dictA) + Counter(dictB)
print(res)

Kết quả:

Đầu ra

Counter({'Mon': 35, 'Tue': 11, 'Sun': 10, 'Wed': 10})