Rumah > pembangunan bahagian belakang > Tutorial Python > Defaultdict vs. Kamus Biasa: Bila dan Mengapa Gunakan Parameter `int` dan `list`?

Defaultdict vs. Kamus Biasa: Bila dan Mengapa Gunakan Parameter `int` dan `list`?

Susan Sarandon
Lepaskan: 2024-12-06 21:19:12
asal
210 orang telah melayarinya

Defaultdict vs. Regular Dictionary: When and Why Use `int` and `list` Parameters?

defaultdict vs. Regular Dictionary

Walaupun menyemak contoh dokumentasi Python, menjelaskan kehalusan kaedah defaultdict masih sukar difahami. Mari kita terokai contoh-contoh ini dengan lebih lanjut dan tafsirkan tujuan parameter int dan senarai.

Dalam contoh pertama:

from collections import defaultdict
s = 'mississippi'
d = defaultdict(int)
for k in s:
    d[k] += 1
Salin selepas log masuk

Dict lalai mencipta pemetaan di mana setiap aksara dalam rentetan memetakan ke integer. Parameter int menunjukkan bahawa apabila aksara baharu ditemui dalam rentetan, nilai lalai yang digunakan ialah 0. Ini dilihat dalam output:

d.items()
# dict_items([('m', 1), ('i', 4), ('s', 4), ('p', 2)])
Salin selepas log masuk

Dalam contoh kedua:

s = [('yellow', 1), ('blue', 2), ('yellow', 3), ('blue', 4), ('red', 1)]
d = defaultdict(list)
for k, v in s:
    d[k].append(v)
Salin selepas log masuk

Dikte lalai mencipta pemetaan di mana setiap kekunci (yang merupakan warna) dipetakan ke senarai. Parameter senarai menunjukkan bahawa apabila warna baharu ditemui, nilai lalai yang digunakan ialah senarai kosong. Ini dilihat dalam output:

d.items()
# [('blue', [2, 4]), ('red', [1]), ('yellow', [1, 3])]
Salin selepas log masuk

Oleh itu, parameter int dan senarai dalam defaultdict menentukan jenis objek lalai yang dicipta apabila kunci baharu diakses. Dalam contoh pertama, aksara baharu dalam rentetan memetakan kepada 0, dan dalam contoh kedua, warna baharu memetakan kepada senarai kosong.

Atas ialah kandungan terperinci Defaultdict vs. Kamus Biasa: Bila dan Mengapa Gunakan Parameter `int` dan `list`?. 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