Die Python-Version dieses Artikels ist 3.7.X. Bevor Sie diesen Artikel lesen, müssen Sie die grundlegende Verwendung des Python-Wörterbuchs verstehen.
Einführung
Dictionary (dict) ist eine integrierte Datenstruktur in Python, die aus mehreren Schlüssel-Wert-Paaren besteht. (Schlüssel) und Wert (Wert) werden durch Doppelpunkte getrennt, jedes Schlüssel-Wert-Paar wird durch Kommas (,) getrennt, das gesamte Wörterbuch steht in geschweiften Klammern ({}), der Schlüssel muss eindeutig sein und der Wert kann eindeutig sein beliebigen Typs sein. Die Schlüssel müssen jedoch von unveränderlichem Typ sein, z. B. Zeichenfolge, Zahl oder Tupel.
Empfohlen: „Python-Tutorial“
Die unterste Ebene verwendet eine Hash-Tabelle, um Zuordnen von Schlüsseln und Wert, Diktat ist ungeordnet. Zu den Funktionen gehören:
● Die Such- und Einfügegeschwindigkeit ist extrem schnell und wird nicht langsamer, wenn die Anzahl der Schlüssel zunimmt
● Es erfordert mehr Speicher
Also, diktieren Sie ist eine Datenstruktur, die Raum gegen Zeit tauscht und in Szenarien verwendet wird, in denen eine schnelle Suche erforderlich ist.
Operation: Allgemeine Methoden
get()
Gibt den Wert des angegebenen Schlüssels zurück. Wenn der Schlüssel nicht vorhanden ist, wird der Standardwert zurückgegeben (Standard ist None ) ohne einen Fehler zu melden, lautet die Syntax dict.get(key).
dict_1['age'] = 24 In [7]: print(dict_1.get('age')) 24 In [11]: print(dict_1.get('nama')) None In [12]: print(dict_1['nama']) --------------------------------------------------------------------------- KeyError Traceback (most recent call last) <ipython-input-12-ef61a380920e> in <module> ----> 1 print(dict_1['nama']) KeyError: 'nama'
Geben Sie dict ein
Verwenden Sie den in-Operator, um festzustellen, ob der Schlüssel im Wörterbuch vorhanden ist. Wenn er vorhanden ist, wird True zurückgegeben, andernfalls wird False zurückgegeben Die Syntax lautet: key in dict .
In [15]: dict_1 Out[15]: {'name': None, 'age': 24, 'sex': None} In [16]: print('name' in dict_1) True In [17]: print('nama' in dict_1) False
In Python 2 wird diese Funktion mithilfe der Methode has_key() implementiert.
items()
Gibt ein durchlaufbares (Schlüssel, Wert) Tupel-Array in Listenform zurück, die Syntax ist dict.items().
In [18]: dict_1 Out[18]: {'name': None, 'age': 24, 'sex': None} In [19]: print(dict_1.items()) dict_items([('name', None), ('age', 24), ('sex', None)]) In [20]: for key, value in dict_1.items(): ...: print(key, value) ...: name None age 24 sex None
keys()
Gibt alle Schlüssel eines Wörterbuchs als Liste zurück: dict.keys()
In [21]: dict_1 Out[21]: {'name': None, 'age': 24, 'sex': None} In [22]: print(dict_1.keys()) dict_keys(['name', 'age', 'sex'])
values()
Gibt alle Werte im Wörterbuch als Liste zurück: dict.values()
In [27]: dict_1 Out[27]: {'name': None, 'age': 24, 'sex': None, 'sub_name': 'Tony'} In [28]: print(dict_1.values()) dict_values([None, 24, None, 'Tony']) setdefault() 和get()类似,用户获得与给顶尖相关联的值,不同的是,该方法如果键不存在时会添加键并将值设为默认值,语法为:dict.setdefault(key, default=None)。 In [23]: dict_1 Out[23]: {'name': None, 'age': 24, 'sex': None} In [24]: print(dict_1.setdefault('name')) None In [25]: print(dict_1.setdefault('name', 'Tony')) None In [26]: print(dict_1.setdefault('sub_name', 'Tony')) Tony In [27]: dict_1 Out[27]: {'name': None, 'age': 24, 'sex': None, 'sub_name': 'Tony'}
update()
Die Syntax lautet: dict_1. update(dict_2) wird verwendet, um die Schlüssel-Wert-Paare von dict_2 auf dict_1 zu aktualisieren.
In [31]: dict_1 Out[31]: {'name': None, 'age': 24, 'sex': None, 'sub_name': 'Tony'} In [32]: dict_2 Out[32]: {'name': 'Mary', 'age': 18, 'sex': None, 'sub_name': ''} In [33]: dict_1.update(dict_2) In [34]: dict_1 Out[34]: {'name': 'Mary', 'age': 18, 'sex': None, 'sub_name': ''}
clear()
Alle Elemente im Wörterbuch löschen, dict.clear(), zum Beispiel:
In [1]: dict_1 = dict(name="Tony", age=24) In [2]: dict_2 = dict_1 In [3]: print(dict_2) {'name': 'Tony', 'age': 24} In [4]: dict_2.clear() In [5]: dict_2 Out[5]: {} In [6]: dict_1 Out[6]: {}
copy ( )
Flache Kopie des ursprünglichen Wörterbuchs, die ein neues Wörterbuch mit denselben Schlüssel-Wert-Paaren zurückgibt, dict.copy(), zum Beispiel:
In [1]: dict_1 = dict(name='Tony', info=['boy', 24]) In [2]: dict_3 = dict_1.copy() In [3]: dict_3['name'] = "Ring" In [4]: dict_3['info'].remove('boy') In [5]: dict_3 Out[5]: {'name': 'Ring', 'info': [24]} In [6]: dict_1 Out[6]: {'name': 'Tony', 'info': [24]}
fromkeys( )
Erstellen Sie ein neues Wörterbuch, dict.fromkeys(seq[, value], verwenden Sie die Elemente in der Sequenz seq als Schlüssel des Wörterbuchs, und value ist der Anfangswert, der allen Schlüsseln entspricht im Wörterbuch, wobei der Wert für die Auswahlparameter steht, der Standardwert ist „Keine“. Geeignet für die Dateninitialisierung, zum Beispiel:
In [1]: info = ['name', 'age', 'sex'] In [2]: dict_1 = dict.fromkeys(info) In [3]: dict_1 Out[3]: {'name': None, 'age': None, 'sex': None}
Allgemeine Operationen
Wörterbücher zusammenführen
Es gibt vier Möglichkeiten:
Allgemeine Verarbeitung
In [15]: dict_1 Out[15]: {'Tony': 24} In [16]: dict_2 Out[16]: {'ben': 18} In [17]: dict3 = dict() In [18]: for key, value in dict_1.items(): ...: dict_3[key] = value ...: In [19]: for key, value in dict_2.items(): ...: dict_3[key] = value ...: In [20]: dict_3 Out[20]: {'Tony': 24, 'ben': 18}
update()
In [9]: dict_1 Out[9]: {'Tony': 24} In [10]: dict_2 Out[10]: {'ben': 18} In [12]: dict_3 = dict_1.copy() In [13]: dict_3.update(dict_2) In [14]: dict_3 Out[14]: {'Tony': 24, 'ben': 18}
Dict(d1, **d2) mit Hilfe von Wörterbuchmethode
In [33]: dict_1 Out[33]: {'Tony': 24} In [34]: dict_2 Out[34]: {'ben': 18} In [35]: dict_3 = dict(dict_1, **dict_2) In [36]: dict_3 Out[36]: {'Tony': 24, 'ben': 18}
Fortgeschritten
Wörterbuchverständnis
ähnelt dem Listenverständnis, mit dem Vorteil, dass es so ist Die C-Implementierung, die auf der untersten Ebene verwendet wird, ist viel schneller und wird empfohlen.
Wörterbuchschlüsselwerte austauschen
Verwenden Sie Wörterbuchverständnisse, um die Schlüsselwerte eines Wörterbuchs einfach auszutauschen:
In [42]: dict_4 Out[42]: {24: 'Tony', 18: 'ben'} In [43]: dict_3 Out[43]: {'Tony': 24, 'ben': 18} In [44]: dict_4 = {k:v for v, k in dict_3.items()} In [45]: dict_4 Out[45]: {24: 'Tony', 18: 'ben'}
Aus Wörterbuchextraktion Teilmengen von
möchte ein Wörterbuch erstellen, das selbst eine Teilmenge eines anderen Wörterbuchs ist.
Zum Beispiel:
In [88]: a = {'Ben': 18, 'Jack': 12, 'Ring': 23, 'Tony': 24} In [89]: b = {k:v for k, v in a.items() if v > 18} In [90]: b Out[90]: {'Ring': 23, 'Tony': 24}
Erzeugen Sie ein geordnetes Wörterbuch
Wörterbücher vor Python3.6 sind ungeordnet, aber manchmal müssen wir die Ordnung aufrechterhalten Wörterbuch, orderDict kann die Ordnung des Wörterbuchs auf der Grundlage des Diktats erreichen. Die Reihenfolge bezieht sich hier auf die Reihenfolge, in der die Wörterbuchschlüssel eingefügt werden Wird das Limit überschritten, wird der früheste hinzugefügte Schlüssel zuerst gelöscht.
Beispiel:
In [49]: from collections import OrderedDict In [50]: ordered_dict = OrderedDict([('a', 2), ('b', 4), ('c', 5)]) In [51]: for key, value in ordered_dict.items(): ...: print(key, value) ...: a 2 b 4 c 5
Sie können sehen, dass OrderedDict beim Erstellen des Wörterbuchs nach der Einfügereihenfolge sortiert wird.
Prinzip: OrderedDict verwaltet intern eine doppelt verknüpfte Liste, die die Schlüsselpositionen entsprechend der Reihenfolge anordnet, in der Elemente hinzugefügt werden. Dies führt auch dazu, dass die Größe von OrderedDict mehr als doppelt so groß ist wie die eines gewöhnlichen Wörterbuchs.
Wörterbücher mit demselben Schlüssel in der Liste zusammenführen
Das heißt, das sogenannte Ein-Schlüssel-Mehrwertwörterbuch zu generieren, das die entsprechenden mehreren Werte benötigt in anderen Containern wie Listen oder Sammlungen gespeichert werden, je nachdem, ob mehrere Werte eindeutig sein müssen.
Zum Beispiel:
In [64]: from collections import defaultdict In [65]: a = [{'a': 1}, {'b': 3}, {'c': 4}, {'a':5}, {'b':2}, {'b': 4}] In [66]: b = defaultdict(list) In [67]: [b[k].append(v) for item in a for k, v in item.items()] Out[67]: [None, None, None, None, None, None] In [68]: b Out[68]: defaultdict(list, {'a': [1, 5], 'b': [3, 2, 4], 'c': [4]}) In [69]: b['a'] Out[69]: [1, 5]
Ähnlichkeiten und Unterschiede zwischen zwei Wörterbüchern finden
Szenario: Ähnlichkeiten und Unterschiede in zwei Wörterbüchern finden, einschließlich der gleichen Schlüssel oder gleichen Wert.
Analyse: Ein Wörterbuch ist eine Sammlung von Zuordnungen zwischen einer Reihe von Schlüsselwerten. Es weist die folgenden Eigenschaften auf:
keys() gibt alle Schlüssel im Wörterbuch und die Schlüssel zurück Wörterbuch unterstützt Mengenoperationen, sodass die Schlüssel des Wörterbuchs mithilfe der Schnittmenge und des Komplements von Mengen verarbeitet werden können.
items() gibt ein Objekt zurück, das aus (Schlüssel, Wert) besteht und Mengenoperationen unterstützt
values()- und Set-Operationen werden nicht unterstützt, da es keine Garantie dafür gibt, dass alle Werte eindeutig sind. Wenn jedoch eine Beurteilungsoperation erforderlich ist, können die Werte zunächst in Sets umgewandelt werden. Beispiel:In [78]: a = {'a':1, 'b':2, 'c':3} In [79]: b = {'b':3, 'c':3, 'd':4} In [80]: a.keys() & b.keys() Out[80]: {'b', 'c'} In [81]: a.keys() - b.keys() Out[81]: {'a'} In [82]: a.items() & b.items() Out[82]: {('c', 3)}
In [85]: a Out[85]: {'a': 1, 'b': 2, 'c': 3} In [86]: c = {k: a[key] for k in a.keys() - {'b'}} In [87]: c Out[87]: {'a': 3, 'c': 3}
Python-Tutorial Kolumne, willkommen zum Lernen!
Das obige ist der detaillierte Inhalt vonDie Verwendung im Python-Wörterbuch müssen Sie kennen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!