Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimanakah Saya Boleh Menggabungkan Kamus Python dengan Kekunci Pendua dengan Cekap?

Bagaimanakah Saya Boleh Menggabungkan Kamus Python dengan Kekunci Pendua dengan Cekap?

Patricia Arquette
Patricia Arquetteasal
2024-12-14 14:11:11994semak imbas

How Can I Efficiently Merge Python Dictionaries with Duplicate Keys?

Menggabungkan Kamus dengan Kekunci Pendua

Dalam Python, kamus digunakan untuk menyimpan koleksi pasangan nilai kunci. Apabila berurusan dengan berbilang kamus dengan kunci pendua, menggabungkannya sambil mengekalkan nilai yang berkaitan boleh menjadi cabaran biasa.

Satu kaedah yang cekap untuk mencapai ini adalah melalui penggunaan koleksi.defaultdict daripada perpustakaan standard Python. Kamus khusus ini membenarkan pemulaan nilai dengan kilang lalai, seperti senarai, untuk kunci yang tidak wujud.

Pertimbangkan contoh kamus berikut:

d1 = {1: 2, 3: 4}
d2 = {1: 6, 3: 7}

Untuk menggabungkan kamus ini, kami boleh memulakan lalai dengan nilai lalai senarai kosong:

dd = defaultdict(list)

Seterusnya, kami mengulangi setiap kamus dalam urutan bersama-sama dengan pasangan nilai kunci mereka:

for d in (d1, d2):
    for key, value in d.items():
        dd[key].append(value)

Dalam gelung ini, untuk setiap kunci yang ditemui, kami menambahkan nilai yang sepadan pada senarai lalai. Pendekatan ini memastikan bahawa semua kunci pendua dikendalikan dengan nilai yang berkaitan.

Akibatnya, kamus dd akan mengandungi nilai gabungan yang sepadan dengan kunci pendua:

print(dd)  # Output: defaultdict(<type 'list'>, {1: [2, 6], 3: [4, 7]})

Kaedah ini amat berguna apabila berurusan dengan set kamus yang besar atau apabila terdapat bilangan kamus input yang sewenang-wenangnya. Ia menggabungkan semua kunci pendua dengan cekap sambil mengekalkan nilainya dalam kamus output yang disatukan.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menggabungkan Kamus Python dengan Kekunci Pendua dengan Cekap?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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