Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimanakah `defaultdict` Python Boleh Mengendalikan Kunci Pendua dalam Kamus?

Bagaimanakah `defaultdict` Python Boleh Mengendalikan Kunci Pendua dalam Kamus?

Susan Sarandon
Susan Sarandonasal
2024-12-21 03:11:10622semak imbas

How Can Python's `defaultdict` Handle Duplicate Keys in Dictionaries?

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!

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