Rumah >pembangunan bahagian belakang >Tutorial Python >Kamus Python: Bilakah Anda Harus Menggunakan `collections.defaultdict`?

Kamus Python: Bilakah Anda Harus Menggunakan `collections.defaultdict`?

Patricia Arquette
Patricia Arquetteasal
2024-12-02 04:39:10118semak imbas

Python Dictionaries: When Should You Use `collections.defaultdict`?

Menyelidiki Perbezaan: Collections.defaultdict vs. Ordinary Dict

Dalam Python, kamus lalai (collections.defaultdict) berbeza daripada a kamus biasa dengan cara yang penting. Walaupun dict standard menimbulkan KeyError apabila mengakses kunci yang tidak wujud, defaultdict mencipta item yang hilang secara automatik dengan menggunakan fungsi tertentu.

Memahami Contoh

Mari periksa contoh yang disediakan:

d = defaultdict(int)

Di sini, int() ialah fungsi lalai, yang memulakan kekunci yang hilang dengan nilai integer (lalai kepada 0).

for k in s:
    d[k] += 1

Gelung ini berulang ke atas setiap aksara (k) dalam rentetan s dan menambah kiraan sepadan yang disimpan dalam defaultdict.

d.items()
dict_items([('m', 1), ('i', 4), ('s', 4), ('p', 2)])

Hasilnya, kami memperoleh kamus dengan frekuensi aksara.

Dalam contoh kedua:

d = defaultdict(list)

list() ialah fungsi lalai, mencipta senarai kosong sebagai lalai untuk kekunci yang hilang.

for k, v in s:
    d[k].append(v)

Gelung ini memasangkan kekunci dan nilai daripada senarai s dan menambahkan nilai pada senarai kunci yang sepadan.

d.items()
[('blue', [2, 4]), ('red', [1]), ('yellow', [1, 3])]

Hasilnya ialah kamus di mana kunci adalah warna dan nilai adalah senarai nilai yang sepadan daripada senarai asal.

Atas ialah kandungan terperinci Kamus Python: Bilakah Anda Harus Menggunakan `collections.defaultdict`?. 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