Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimanakah Saya Boleh Menggabungkan Berbilang Kamus dengan Kecekapan dengan Kekunci Yang Berpotensi Hilang?

Bagaimanakah Saya Boleh Menggabungkan Berbilang Kamus dengan Kecekapan dengan Kekunci Yang Berpotensi Hilang?

Patricia Arquette
Patricia Arquetteasal
2024-12-16 19:56:11150semak imbas

How Can I Efficiently Merge Multiple Dictionaries with Potentially Missing Keys?

Mengagregatkan Data daripada Berbilang Kamus Dengan Cekap

Apabila bekerja dengan berbilang kamus, keperluan mungkin timbul untuk menggabungkan data mereka, mengumpul nilai untuk kunci yang sepadan ke dalam kamus baharu. Tugasan ini menimbulkan cabaran apabila kamus mungkin mengandungi kunci yang tiada pada orang lain.

Untuk menangani cabaran ini dengan berkesan, kami boleh menggunakan lalai daripada modul koleksi. Begini cara ia berfungsi:

from collections import defaultdict

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

dd = defaultdict(list)

for d in (d1, d2): # Include all dictionaries here
    for key, value in d.items():
        dd[key].append(value)

Kod ini berulang pada setiap kamus, menambah setiap pasangan nilai kunci pada diklat lalai. Dict lalai secara automatik memulakan kunci yang hilang dengan senarai kosong. Oleh itu, apabila kunci ditemui dalam kamus tetapi tidak dalam kamus sebelumnya, senarai baharu dicipta untuk nilainya.

Hasil akhir yang diperoleh dalam dd ialah lalai di mana setiap kunci sepadan dengan senarai nilai dikumpul daripada semua kamus input.

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

Penyelesaian ini memastikan pengagregatan data yang cekap dan komprehensif daripada berbilang kamus, mengendalikan walaupun kes yang tiada kunci.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menggabungkan Berbilang Kamus dengan Kecekapan dengan Kekunci Yang Berpotensi Hilang?. 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