Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimanakah `defaultdict` Python Boleh Mengendalikan Kunci Pendua dalam Kamus?
Mengatasi Kunci Pendua dalam Kamus Python
Dalam Python, kamus ialah struktur data yang memetakan kunci unik kepada nilai yang berkaitan. Walau bagaimanapun, apakah yang berlaku apabila anda menemui kunci pendua dalam data anda?
Pertimbangkan fail teks dengan nombor pendaftaran kereta pendua dan maklumat berkaitan, seperti:
EDF768, Bill Meyer, 2456, Vet_Parking TY5678, Jane Miller, 8987, AgHort_Parking GEF123, Jill Black, 3456, Creche_Parking ABC234, Fred Greenside, 2345, AgHort_Parking ...
Anda mungkin mahu mencipta kamus dengan nombor pendaftaran sebagai kunci dan data sebagai nilai. Walau bagaimanapun, hanya menggunakan dict[key] = value assignment menimpa nilai sedia ada yang dikaitkan dengan kekunci pendua.
Penyelesaian: defaultdict
Python's defaultdict daripada modul collections membolehkan anda untuk mengatasi batasan ini. Ia ialah subkelas dict yang menyediakan nilai lalai untuk kunci yang tidak ditentukan.
Untuk menggunakannya, cuma gantikan:
data_dict = {}
dengan:
from collections import defaultdict data_dict = defaultdict(list)
Sekarang, sebaliknya daripada memberikan nilai secara langsung, gunakan kaedah append():
data_dict[regNumber].append(details)
Ini akan membuat senarai nilai yang dikaitkan dengan setiap kunci pendua, dengan berkesan menyimpan semua data yang berkaitan dengan kunci tersebut.
Contoh:
Kod berikut menggunakan defaultdict untuk mencipta kamus daripada data sampel :
from collections import defaultdict data_dict = defaultdict(list) for line in data_list: regNumber = line[0] # ... (rest of the code unchanged) data_dict[regNumber].append(details)
Ini akan menghasilkan kamus di mana setiap nombor pendaftaran (kunci) dipetakan ke senarai data yang berkaitan (nilai).
Atas ialah kandungan terperinci Bagaimanakah `defaultdict` Python Boleh Mengendalikan Kunci Pendua dalam Kamus?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!