Erklären von 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!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

Wie kann man nicht erkannt werden, wenn Sie Fiddlereverywhere für Man-in-the-Middle-Lesungen verwenden, wenn Sie FiddLereverywhere verwenden ...

Fastapi ...

Verwenden Sie Python im Linux -Terminal ...

Wie lehre ich innerhalb von 10 Stunden die Grundlagen für Computer -Anfänger für Programmierungen? Wenn Sie nur 10 Stunden Zeit haben, um Computer -Anfänger zu unterrichten, was Sie mit Programmierkenntnissen unterrichten möchten, was würden Sie dann beibringen ...

Verständnis der Anti-Crawling-Strategie von Investing.com Viele Menschen versuchen oft, Nachrichten von Investing.com (https://cn.investing.com/news/latest-news) zu kriechen ...

Über Pythonasyncio ...

Laden Sie die Gurkendatei in Python 3.6 Umgebungsfehler: ModulenotFoundError: Nomodulenamed ...

Diskussion über die Gründe, warum Pipeline -Dateien beim Lernen und Verwendung von Scapy -Crawlern für anhaltende Datenspeicher nicht geschrieben werden können, können Sie auf Pipeline -Dateien begegnen ...
