Rumah > pembangunan bahagian belakang > Tutorial Python > `defaultdict` vs. `dict` biasa dalam Python: Bilakah Anda Perlu Menggunakan Yang Mana?

`defaultdict` vs. `dict` biasa dalam Python: Bilakah Anda Perlu Menggunakan Yang Mana?

DDD
Lepaskan: 2024-12-07 16:36:12
asal
694 orang telah melayarinya

`defaultdict` vs. Regular `dict` in Python: When Should You Use Which?

Collections.defaultdict vs. Regular Dict: Understanding the Distinction

Tidak seperti kamus Python konvensional yang menimbulkan KeyError untuk kekunci yang hilang, defaultdict menawarkan kelainan yang unik. Ia secara automatik memulakan kunci yang tidak wujud dengan nilai lalai, ditentukan oleh objek "boleh dipanggil" yang ditentukan pengguna. Untuk memahami sepenuhnya fungsinya, mari kita mendalami sintaks dan mekaniknya.

Dalam contoh pertama yang diberikan dalam soalan:

>>> from collections import defaultdict

>>> s = 'mississippi'
>>> d = defaultdict(int)
>>> for k in s:
...     d[k] += 1
...
>>> d.items()
dict_items([('m', 1), ('i', 4), ('s', 4), ('p', 2)])
Salin selepas log masuk

Kami menggunakan defaultdict dan menentukan int sebagai objek boleh panggil. Semasa kita melelar melalui rentetan s, defaultdict secara automatik mencipta kunci yang hilang dengan menggunakan int(). Fungsi ini mengembalikan objek integer yang dimulakan kepada 0. Akibatnya, setiap huruf dalam s menjadi kunci dalam kamus d yang terhasil, dengan nilai sepadannya ialah frekuensi kejadiannya.

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)
...
>>> d.items()
[('blue', [2, 4]), ('red', [1]), ('yellow', [1, 3])]
Salin selepas log masuk

Kami menggunakan defaultdict sekali lagi dan lulus senarai sebagai objek boleh panggil. Kali ini, kunci yang tidak wujud dimulakan menggunakan list(). Sambil kita mengulangi senarai tuple s, lalai memastikan bahawa setiap warna unik diwakili sebagai kunci. Nilai yang sepadan ialah senarai yang menyimpan frekuensi bagi setiap penampilan warna.

Dengan menggunakan defaultdict, kami boleh mengendalikan kamus dengan kekunci hilang dengan mudah, mengelakkan kemungkinan pengecualian KeyError dan memudahkan kod kami.

Atas ialah kandungan terperinci `defaultdict` vs. `dict` biasa dalam Python: Bilakah Anda Perlu Menggunakan Yang Mana?. 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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan