Rumah > pembangunan bahagian belakang > Tutorial Python > Bagaimanakah Saya Boleh Menggabungkan Kamus Python dan Jumlah Nilai dengan Kecekapan untuk Kunci Biasa?

Bagaimanakah Saya Boleh Menggabungkan Kamus Python dan Jumlah Nilai dengan Kecekapan untuk Kunci Biasa?

Patricia Arquette
Lepaskan: 2024-12-11 16:22:15
asal
719 orang telah melayarinya

How Can I Efficiently Merge Python Dictionaries and Sum Values for Common Keys?

Menggabungkan Kamus dalam Python: Menambah Nilai untuk Kekunci Bertindih

Apabila bekerja dengan berbilang kamus, selalunya perlu untuk menggabungkannya dengan cara yang bermakna . Satu senario biasa melibatkan penambahan nilai kunci yang muncul dalam kedua-dua kamus sambil mengekalkan kunci yang hanya wujud dalam satu.

Masalah:

Pertimbangkan kamus berikut:

Dict A: {'a': 1, 'b': 2, 'c': 3}
Dict B: {'b': 3, 'c': 4, 'd': 5}
Salin selepas log masuk

Matlamatnya adalah untuk menggabungkan kamus ini supaya hasilnya ialah:

{'a': 1, 'b': 5, 'c': 7, 'd': 5}
Salin selepas log masuk

Penyelesaian Menggunakan Collections.Counter:

Cara Pythonic dan cekap untuk mencapai ini adalah dengan menggunakan collections.Counter class. Ia merupakan subkelas dict yang menyediakan cara mudah untuk melakukan pengiraan berasaskan elemen, yang sesuai dengan tugas menggabungkan kamus.

from collections import Counter

A = Counter({'a':1, 'b':2, 'c':3})
B = Counter({'b':3, 'c':4, 'd':5})
Salin selepas log masuk

Untuk menggabungkan kamus, kami hanya menambah objek Counter:

merged_dict = A + B
Salin selepas log masuk

Hasilnya ialah objek Counter baharu, yang secara automatik menambah nilai untuk bertindih kunci:

merged_dict.most_common()
# Output: [('c', 7), ('b', 5), ('d', 5), ('a', 1)]
Salin selepas log masuk

Menukarnya kepada kamus biasa adalah remeh:

merged_dict = dict(merged_dict)
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menggabungkan Kamus Python dan Jumlah Nilai dengan Kecekapan untuk Kunci Biasa?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan