Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimanakah Saya Boleh Mengendalikan Kunci Pendua Semasa Mencipta Kamus Python?
Kunci Pendua dalam Kamus Python
Dalam alam pengaturcaraan, kamus terbukti tidak ternilai untuk mengatur data dengan memetakan kunci unik kepada nilai yang sepadan. Walau bagaimanapun, pelaksanaan kamus Python standard mematuhi prinsip yang ketat: setiap kunci mesti kekal unik dalam kamus. Kekangan ini menimbulkan cabaran apabila menangani senario yang melibatkan kunci pendua dalam set data.
Mencipta Kamus dengan Kunci Pendua
Andaikan kita menemui fail teks yang mengandungi pendaftaran kereta pendua nombor, setiap satunya dikaitkan dengan maklumat berbeza seperti nama pemandu, sambungan telefon dan lokasi tempat letak kereta. Tugasnya adalah untuk membina kamus dengan nombor pendaftaran sebagai kunci dan data yang sepadan sebagai nilai. Coretan berikut menggambarkan pendekatan biasa:
data_dict = {} data_list = [] def createDictionaryModified(filename): path = "C:\Users\user\Desktop" basename = "ParkingData_Part3.txt" filename = path + "//" + basename file = open(filename) contents = file.read() print(contents, "\n") data_list = [lines.split(",") for lines in contents.split("\n")] for line in data_list: regNumber = line[0] name = line[1] phoneExtn = line[2] carpark = line[3].strip() details = (name, phoneExtn, carpark) data_dict[regNumber] = details print(data_dict, "\n") print(data_dict.items(), "\n") print(data_dict.values())
Walau bagaimanapun, kod ini menghadapi pengehadan disebabkan oleh kelakuan kamus lalai Python: kekunci pendua mengakibatkan penggantian nilai sebelumnya. Untuk memintas perkara ini, penyelesaian adalah untuk menyimpan senarai atau set dalam kamus.
Menggunakan Collections.defaultdict
Pustaka standard Python menyediakan alat yang berguna untuk tujuan ini: koleksi.defaultdict. Kelas ini memulakan kamus dengan kilang lalai, memastikan bahawa kunci yang tidak wujud akan membuat senarai atau set baharu (bergantung pada hujah kilang).
from collections import defaultdict data_dict = defaultdict(list)
Untuk mengisi kamus dengan kunci pendua, hanya gantikan pernyataan tugasan asal:
data_dict[regNumber] = details
dengan:
data_dict[regNumber].append(details)
Strategi ini mencipta kamus dengan berkesan senarai, di mana setiap kunci sepadan dengan senarai nilai yang berkaitan. Dengan memanfaatkan collections.defaultdict, anda boleh berjaya mengendalikan kunci pendua dalam kamus Python anda.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengendalikan Kunci Pendua Semasa Mencipta Kamus Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!