Heim  >  Artikel  >  Backend-Entwicklung  >  Verwandte Einführung in Python-Zuordnungstypen

Verwandte Einführung in Python-Zuordnungstypen

爱喝马黛茶的安东尼
爱喝马黛茶的安东尼Original
2019-06-14 14:01:063933Durchsuche

Der Zuordnungstyp ist eine iterierbare Kombination von Schlüsselwert-Datenelementen, die Methoden für den Zugriff auf Datenelemente und deren Schlüssel und Werte bereitstellt. In Python3 werden zwei ungeordnete Zuordnungstypen unterstützt: integriertes Diktat und Collections.defaultdict-Typ die Standardbibliothek.

Nach Python3.1 wurde auch ein geordneter Zuordnungstyp eingeführt: Sammlungen.OrderedDict.

Verwandte Empfehlungen: „Python-Video

Verwandte Einführung in Python-Zuordnungstypen

Funktionen:

1. Als Schlüssel können in Kartentypen nur Hash-Objekte verwendet werden, daher können integrierte feste Datentypen alle als Schlüssel verwendet werden in Mapping-Typen (alle integrierten festen Datentypen können derzeit gehasht werden): int, float, complex, bool, str, tuple, Frozenset; Schlüssel kann ein beliebiges Objekt sein;

3. Der Zuordnungstyp ist auch iterierbar.

4. Zuordnungstypen können mithilfe von Vergleichsoperatoren, Zugehörigkeitsoperatoren in/nicht in und der integrierten Funktion len() verglichen werden.

1.dict (Wörterbuch) Der Diktatdatentyp ist ein ungeordneter, veränderlicher kombinierter Datentyp, der 0 -n Schlüsselwerte enthält Bei Paaren ist der Schlüssel ein Verweis auf ein hashbares Objekt und der Wert kann auf einen Verweis auf ein beliebiges Objekt verweisen. Da es sich bei dem Schlüssel um eine hashbare Objektreferenz handelt, ist die Eindeutigkeit des Schlüssels gewährleistet, da das Diktat veränderbar ist. Da das Diktat ungeordnet ist, können Datenelemente hinzugefügt und daraus entfernt werden. Es gibt keinen Index und es kann auch nicht bedient werden mit dem Sharding-Operator.

Erstellung eines Wörterbuchs

1.dict() kann als Funktion aufgerufen werden und ein leeres Diktat wird erstellt:

>>> dict()
{}
>>>

dict() Wenn ein Zuordnungstypparameter übergeben wird, wird ein auf dem Parameter basierendes Wörterbuch zurückgegeben, z. B.:

>>> d1 = {"key1":"value1","key2":"value2"}
>>> dict(d1)
{'key1': 'value1', 'key2': 'value2'}
>>>

dict() kann auch Sequenztypparameter akzeptieren, jedoch nur, wenn jedes Datenelement in der Sequenz selbst vorhanden ist Eine Sequenz, die zwei Objekte enthält, das erste wird als Schlüssel und das zweite als Wert verwendet, wie zum Beispiel:

>>> d1 = dict((("k1","v1"),("k2","v2")))   #使用元组创建
>>> d1
{'k1': 'v1', 'k2': 'v2'}
>>> 
>>> d1 = dict([("k1","v1"),("k2","v2")])   #使用序列创建
>>> d1
{'k1': 'v1', 'k2': 'v2'}
>>>

dict() kann auch mit Schlüsselwortparametern erstellt werden, wobei der Schlüssel als verwendet wird ein Schlüsselwort. Der Wert wird als Wert des Schlüsselworts verwendet, z. B.:

>>> dict(id=1,name="zhangsan",age=23)
{'id': 1, 'name': 'zhangsan', 'age': 23}
>>>

Hinweis: Das Schlüsselwort muss eine gültige Python-ID sein

2. Verwenden Sie geschweifte Klammern, um ein Diktat zu erstellen. empty {} erstellt ein leeres Diktat. Ein nicht leeres Diktat besteht aus mehreren Elementen, jedes Element wird durch ein Komma getrennt und jedes Element wird in der Form K:V erstellt, z. B.:

>>> dict2 = {"name":"kobe","age":33,"num":24}
>>> dict2
{'name': 'kobe', 'age': 33, 'num': 24}
>>>

3. Verwenden Sie die Wörterbuchkonnotation, um ein Wörterbuch zu erstellen

Standarddict ist eine Unterklasse von dict, die alle Operationen und Methoden von dict unterstützt. Der Unterschied zum Diktat besteht darin, dass beim Abrufen des Werts über dict[x] eine KeyError-Ausnahme auftritt, wenn das Diktat keinen bestimmten Schlüssel enthält. Wenn es sich jedoch um ein Standarddikt handelt, wird ein neues Element mit dem Schlüssel und dem Standardwert erstellt Wert.

2.collections.defaultdict (Standardwörterbuch)

Sammlungen erstellen.defaultdict

Erstellen Sammlungen.defaultdict, über Sammlungen.defaultdict() gibt es zwei Möglichkeiten, gemäß den Parametern zu erstellen:

* 1. Verwenden Sie den Parametertyp zum Erstellen:

>>> import collections
>>> cd1 = collections.defaultdict(int)
>>> cd2 = collections.defaultdict(list)
>>> cd3 = collections.defaultdict(str)
>>> cd1["x"]
0
>>> cd2["x"]
[]
>>> cd3["x"]
''
>>>

Hier int, Liste , str, ihre Standardwerte sind 0, [], „

* 2. Verwenden Sie den Funktionsnamen zum Erstellen:

>>> def name():
    return 'zhangsan'
>>> cd4 = collections.defaultdict(name)
>>> cd4["x"]
'zhangsan'
>>>

Auf diese Weise können Sie den Standardwert festlegen Standardwörterbuch Flexibler.

Es ist zu beachten, dass „collections.defaultdict()“ keine Parameter oder „Keine“ übergeben kann. Wenn dies der Fall ist, wird der Standardwert jedoch nicht unterstützt, z. B.:

>>> cd5 = collections.defaultdict()
>>> cd5["x"]
Traceback (most recent call last):
  File "<pyshell#254>", line 1, in <module>
    cd5["x"]
KeyError: &#39;x&#39;
>>>

Mit „collections.defaultdict“ können die Methoden „get(k,v)“ und „setdefault()“ in dict ersetzt werden. >OrderedDict ist eine dict-Unterklasse, die alle dict-Methoden unterstützt und sich die Reihenfolge merkt, in der Schlüssel eingefügt werden , die ursprüngliche Einfügeposition bleibt unverändert und wird an das Ende verschoben 🎜>

class collections.OrderedDict([items])

Da es geordnet ist, sind zwei OrderedDicts nur dann gleich, wenn die Reihenfolge gleich ist Die Reihenfolge wird ignoriert.

from collections import OrderedDict
d = {&#39;banana&#39;: 3, &#39;apple&#39;: 4}
od1 = OrderedDict({&#39;banana&#39;: 3, &#39;apple&#39;: 4})
od2 = OrderedDict({&#39;apple&#39;: 4, &#39;banana&#39;: 3})
print(od1 == od2)
print(od1 == d)

3. Schlüsselmethode

FalseTrue
Diese Methode des gewöhnlichen Diktats akzeptiert keine Parameter und kann nur den letzten Eintrag löschen; ein letzter Parameter: Wenn last=True, ist es dasselbe wie die normale Methode und entspricht der LIFO-Reihenfolge; wenn last=False, wird das erste Element gelöscht, entsprechend der FIFO-Reihenfolge
OrderedDict.popitem(last=True)
Laufergebnisse
from collections import OrderedDict
od1 = OrderedDict({&#39;banana&#39;: 3, &#39;apple&#39;: 4})
od1.popitem(False)
print(od1)

Einfache Erweiterung

OrderedDict behält nur die Reihenfolge der Einfügung bei, die Reihenfolge wird nicht geändert

OrderedDict([(&#39;apple&#39;, 4)])

Aber manchmal müssen wir das Gleiche ändern und einfügen, indem wir die Methode __setitem__() so umschreiben, dass sie beim Ändern zuerst gelöscht und dann eingefügt wird

Laufergebnis

od1 = OrderedDict({&#39;banana&#39;: 3, &#39;apple&#39;: 4})
od1[&#39;banana&#39;] = 5print(od1)
.

Das obige ist der detaillierte Inhalt vonVerwandte Einführung in Python-Zuordnungstypen. 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