Heim >Backend-Entwicklung >Python-Tutorial >Erklären von defaultdict in Python

Erklären von defaultdict in Python

Susan Sarandon
Susan SarandonOriginal
2024-12-17 12:24:26677Durchsuche

Explaining defaultdict in Python

ANWENDUNGSFALL

Das Ziel dieser Seite? besteht darin, das Konzept und die Verwendung von Pythons defaultdict aus dem Collections-Modul zu erklären und sich insbesondere über den seltsamen Namen zu wundern. Es ist von David Baezleys Advanced Python Mastery inspiriert, siehe ex_2_2 > Sammlungen.

Standarddict:

  • stellt einen Standardwert für fehlende Schlüssel bereit
  • vermeidet KeyError durch automatische Initialisierung von Schlüsseln
  • ist nach seinem Standardverhalten beim Initialisieren von Elementen benannt
  • vereinfacht den Code, indem manuelle Prüfungen und Einfügungen vermieden werden
  • Zur Initialisierung wird nur ein aufrufbares Objekt (Typ oder Funktion) übergeben
  • Im angegebenen Beispiel wird list als Standardfabrik verwendet
  • was bedeutet, dass automatisch eine leere Liste für fehlende Schlüssel erstellt wird
  • und erleichtert die effiziente Gruppierung von Daten
  • kann Lambda-Funktionen auch für andere, wörtliche Standardwerte verwenden
  • Beispiel: defaultdict(lambda: 0) gibt 0 für fehlende Schlüssel zurück

Beispielcode aus 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}]

Beispiel mit Lambda:

from collections import defaultdict

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

Das obige ist der detaillierte Inhalt vonErklären von defaultdict in Python. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn