Rumah >pembangunan bahagian belakang >Tutorial Python >Menjelaskan lalai dalam Python

Menjelaskan lalai dalam Python

Susan Sarandon
Susan Sarandonasal
2024-12-17 12:24:26689semak imbas

Explaining defaultdict in Python

KEGUNAAN

Matlamat halaman ini? adalah untuk menerangkan konsep dan penggunaan defaultdict Python dari modul koleksi, khususnya tertanya-tanya tentang nama pelik. Ia diilhamkan oleh Penguasaan Python Lanjutan David Baezley, lihat ex_2_2 > Koleksi.

defaultdict:

  • menyediakan nilai lalai untuk kunci yang hilang
  • mengelakkan KeyError dengan memulakan kunci secara automatik
  • dinamakan untuk kelakuan lalainya untuk memulakan elemen
  • memudahkan kod dengan mengelakkan semakan dan sisipan manual
  • hanya objek boleh panggil (jenis atau fungsi) diluluskan untuk memulakan
  • dalam contoh yang diberikan, senarai digunakan sebagai kilang lalai
  • yang bermaksud ia secara automatik mencipta senarai kosong untuk kunci yang hilang
  • dan memudahkan pengumpulan data dengan cekap
  • juga boleh menggunakan fungsi lambda untuk nilai lalai literal yang lain
  • contoh: defaultdict(lambda: 0) mengembalikan 0 untuk kunci yang hilang

Contoh Kod Daripada Advanced Python Mastery

portfolio
[{'name': 'AA', 'shares': 100, 'price': 32.2}, {'name': 'IBM', 'shares': 50, 'price': 91.1}, {'name': 'CAT', 'shares': 150, 'price': 83.44}, {'name': 'MSFT', 'shares': 200, 'price': 51.23}, {'name': 'GE', 'shares': 95, 'price': 40.37}, {'name': 'MSFT', 'shares': 50, 'price': 65.1}, {'name': 'IBM', 'shares': 100, 'price': 70.44}]
print("### DEFAULTDICT")
from collections import defaultdict

print("#### Group data, e.g. find all stocks with the same name")
byname = defaultdict(list)
for s in portfolio:
    byname[s["name"]].append(s)
byname

# defaultdict(<class 'list'>, {'AA': [{'name': 'AA', 'shares': 100, 'price': 32.2}], 'IBM': [{'name': 'IBM', 'shares': 50, 'price': 91.1}, {'name': 'IBM', 'shares': 100, 'price': 70.44}], 'CAT': [{'name': 'CAT', 'shares': 150, 'price': 83.44}], 'MSFT': [{'name': 'MSFT', 'shares': 200, 'price': 51.23}, {'name': 'MSFT', 'shares': 50, 'price': 65.1}], 'GE': [{'name': 'GE', 'shares': 95, 'price': 40.37}]})

print('#### Find all stocks with the name "IBM"')
byname["IBM"]
# >>> [{'name': 'IBM', 'shares': 50, 'price': 91.1}, {'name': 'IBM', 'shares': 100, 'price': 70.44}]

Contoh dengan Lambda:

from collections import defaultdict

byname = defaultdict(lambda: 0)
print(byname["missing_key"])  # This will return 0

Atas ialah kandungan terperinci Menjelaskan lalai dalam Python. 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