Dieser Artikel bietet Ihnen eine Zusammenfassung der Funktionsweise des Python-Wörterbuchs (mit Beispielen). Freunde in Not können darauf zurückgreifen.
Die Wörterbuchstruktur (Dikt) ist eine häufig verwendete Datenstruktur in Python. Basierend auf meiner tatsächlichen Nutzungserfahrung fasst der Autor das relevante Wissen über Wörterbücher zusammen und hofft, den Lesern etwas Inspiration zu geben~
Eine übliche Methode zum Erstellen eines Wörterbuchs besteht darin, zunächst ein leeres Wörterbuch zu erstellen und dann nacheinander Schlüssel und Werte hinzuzufügen, z. B. das Erstellen eines Wörterbuchs person={'name ':'Tome', 'age' :22, 'city':'Shanghai, 'ID': '073569'}, Sie können den folgenden Code verwenden:
person = {} person['name'] = 'Tom' person['age'] = 22 person['city'] = 'Shanghai' person['ID'] = '073569' print(person)
Das Ausgabeergebnis ist:
{'name': 'Tom', 'age': 22, 'city': 'Shanghai', 'ID': '073569'}
Diese Erstellungsmethode ist einfach und originell, der Code nicht einfach und elegant genug. Wir verwenden die Zip-Funktion, um dieses Wörterbuch einfach und schnell zu erstellen:
attrs = ['name', 'age', 'city', 'ID'] values = ['Tom', 22, 'Shanghai', '073569'] person = dict(zip(attrs, values)) print(person)
Das Ausgabeergebnis stimmt mit dem Originalcode überein.
In praktischen Anwendungen müssen wir häufig das Wörterbuch durchqueren. Die Implementierungsmethode finden Sie im folgenden Code:
attrs = ['name', 'age', 'city', 'ID'] values = ['Tom', 22, 'Shanghai', '073569'] person = dict(zip(attrs, values)) for key, value in person.items(): print('Key:%-6s, Value:%s'%(key, value))
Das Ausgabeergebnis ist :
Key:name , Value:Tom Key:age , Value:22 Key:city , Value:Shanghai Key:ID , Value:073569
In praktischen Anwendungen müssen wir manchmal den Schlüssel finden, der einem bestimmten Wert im Wörterbuch entspricht, und das Austauschen von Schlüsseln. Wertepaare sind eine andere Möglichkeit. Der Implementierungscode zum Austauschen von Schlüssel-Wert-Paaren lautet wie folgt:
attrs = ['name', 'age', 'city', 'ID'] values = ['Tom', 22, 'Shanghai', '073569'] person = dict(zip(attrs, values)) print('对调前:') print(person) Person = {v:k for k,v in person.items()} print('对调后:') print(Person)
Das Ausgabeergebnis ist:
对调前: {'name': 'Tom', 'age': 22, 'city': 'Shanghai', 'ID': '073569'} 对调后: {'Tom': 'name', 22: 'age', 'Shanghai': 'city', '073569': 'ID'}
Das Wörterbuch in Python ist ungeordnet und es wird herausgenommen Der Schlüssel ist ungeordnet, da er als Hash gespeichert ist. Manchmal müssen die Elemente oder Schlüssel des Wörterbuchs in der richtigen Reihenfolge gespeichert werden. In diesem Fall können wir das collections
im Modul OrderedDict
verwenden, bei dem es sich um eine geordnete Wörterbuchstruktur handelt.
Der Beispielcode lautet wie folgt (Python-Version ist 3.5.2):
from collections import OrderedDict d = {} d['Tom']='A' d['Jack']='B' d['Leo']='C' d['Alex']='D' print('无序字典(dict):') for k,v in d.items(): print(k,v) d1 = OrderedDict() d1['Tom']='A' d1['Jack']='B' d1['Leo']='C' d1['Alex']='D' print('\n有序字典(OrderedDict):') for k,v in d1.items(): print(k,v)
Das Ausgabeergebnis ist:
无序字典(dict): Leo C Jack B Tom A Alex D 有序字典(OrderedDict): Tom A Jack B Leo C Alex D
collections.defaultdict
ist Python. Eine Unterklasse der integrierten Klasse dict
. Der erste Parameter stellt den Anfangswert für das Attribut default_factory bereit, das standardmäßig None
ist. Es überschreibt eine Methode und fügt eine beschreibbare Instanzvariable hinzu. Ansonsten funktioniert es genauso wie dict
, stellt jedoch einen Standardwert für einen nicht vorhandenen Schlüssel bereit und vermeidet so KeyError
-Ausnahmen.
Nehmen wir als Beispiel die Worthäufigkeitsstatistik der Wörter in der Liste, um die Vorteile von collections.defaultdict
zu demonstrieren.
Unter normalen Umständen lautet der Worthäufigkeitscode in unserer statistischen Liste:
words = ['sun', 'moon', 'star', 'star',\ 'star', 'moon', 'sun', 'star'] freq_dict = {} for word in words: if word not in freq_dict.keys(): freq_dict[word] = 1 else: freq_dict[word] += 1 for key, val in freq_dict.items(): print(key, val)
Das Ausgabeergebnis lautet wie folgt:
sun 2 moon 2 star 4
Mit collections.defaultdict
kann der Code optimiert werden:
from collections import defaultdict words = ['sun', 'moon', 'star', 'star',\ 'star', 'moon', 'sun', 'star'] freq_dict = defaultdict(int) for word in words: freq_dict[word] += 1 for key, val in freq_dict.items(): print(key, val)
Andere Standardanfangswerte können festgelegt, aufgelistet, diktiert usw. werden.
Das obige ist der detaillierte Inhalt vonZusammenfassung der Python-Wörterbuchoperationen (mit Beispielen). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!