Apabila bekerja dengan berbilang kamus yang mengandungi kekunci bertindih, adalah perlu untuk menggabungkannya dengan cekap sambil mengumpul nilai yang dikaitkan dengan kunci tersebut. Artikel ini meneroka penyelesaian untuk menggabungkan dan mengumpul nilai daripada kunci padanan dalam koleksi kamus.
Memandangkan beberapa kamus seperti:
d1 = {key1: x1, key2: y1} d2 = {key1: x2, key2: y2}
Matlamatnya ialah untuk mendapatkan hasil gabungan sebagai kamus baharu, di mana setiap kekunci menyimpan satu tuple nilai daripada yang asal kamus:
d = {key1: (x1, x2), key2: (y1, y2)}
Penyelesaian menggunakan collections.defaultdict untuk mencipta kamus dengan nilai lalai sebagai senarai boleh ubah. Ini membenarkan pengumpulan nilai untuk setiap kunci:
from collections import defaultdict d1 = {1: 2, 3: 4} d2 = {1: 6, 3: 7} dd = defaultdict(list) for d in (d1, d2): # Input dictionaries can be iterated over here for key, value in d.items(): dd[key].append(value)
Kamus gabungan terakhir dd mengandungi setiap kunci yang dipetakan ke senarai nilai daripada kamus input.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mencantumkan Kamus dengan Kekunci Pendua dengan Cekap dan Mengumpul Nilainya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!