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

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

Patricia Arquette
Lepaskan: 2024-12-02 04:39:10
asal
135 orang telah melayarinya

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)
Salin selepas log masuk

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

for k in s:
    d[k] += 1
Salin selepas log masuk

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)])
Salin selepas log masuk

Hasilnya, kami memperoleh kamus dengan frekuensi aksara.

Dalam contoh kedua:

d = defaultdict(list)
Salin selepas log masuk

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

for k, v in s:
    d[k].append(v)
Salin selepas log masuk

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])]
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan