Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimanakah Saya Boleh Mengendalikan Kunci Pendua Semasa Mencipta Kamus Python?

Bagaimanakah Saya Boleh Mengendalikan Kunci Pendua Semasa Mencipta Kamus Python?

Barbara Streisand
Barbara Streisandasal
2024-12-13 17:16:09223semak imbas

How Can I Handle Duplicate Keys When Creating a Python Dictionary?

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!

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