Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Industrial programming >> Python

Python-Dictionaries meistern: Erstellung, Manipulation und fortgeschrittene Techniken

Python Dictionary

Dieser umfassende Leitfaden erklärt Python-Dictionaries – wie man sie erstellt, auf Elemente zugreift, hinzufügt, löscht und eingebaute Methoden nutzt.

Video: Python Dictionaries zum Speichern von Schlüssel/Wert-Paaren

Python-Dictionaries sind ungeordnete Sammlungen von Schlüssel/Wert-Paaren. Jeder Eintrag ordnet einem einzigartigen, unveränderlichen Schlüssel einen Wert zu, der jeden Typ haben kann.


Ein Python-Dictionary erstellen

Die Definition eines Dictionaries ist unkompliziert: Setzen Sie kommagetrennte Schlüssel/Wert-Paare in geschweifte Klammern {}. Schlüssel müssen unveränderlich sein (Strings, Zahlen oder Tupel aus unveränderlichen Elementen) und eindeutig; Werte können jeden Datentyp haben und sich wiederholen.

# leeres Dictionary
my_dict = {}
# Dictionary mit ganzzahligen Schlüsseln
my_dict = {1: 'Apfel', 2: 'Ball'}
# Dictionary mit gemischten Schlüsseln
my_dict = {'name': 'Hans', 1: [2, 4, 3]}
# mit dict()
my_dict = dict({1:'Apfel', 2:'Ball'})
# aus Sequenz von Paaren
my_dict = dict([(1,'Apfel'), (2,'Ball')])

All diese Ansätze erzeugen die gleiche Dictionary-Struktur.


Auf Dictionary-Elemente zugreifen

Dictionary-Werte werden über ihre Schlüssel abgerufen, entweder mit eckigen Klammern [] oder der get()-Methode. Die Verwendung von Klammern löst einen KeyError aus, wenn der Schlüssel fehlt; get() gibt standardmäßig None zurück.

# get vs [] für den Elementzugriff
my_dict = {'name': 'Hans', 'alter': 26}
# Ausgabe: Hans
print(my_dict['name'])
# Ausgabe: 26
print(my_dict.get('alter'))
# Zugriff auf fehlenden Schlüssel gibt None zurück
print(my_dict.get('adresse'))
# KeyError
print(my_dict['adresse'])

Ausgabe

Hans 26 None Traceback (most recent call last): File "<string>", line 15, in <module> print(my_dict['adresse']) KeyError: 'adresse'

Dictionary-Elemente ändern und hinzufügen

Dictionaries sind veränderbar. Die Zuweisung an einen bestehenden Schlüssel aktualisiert dessen Wert; die Zuweisung an einen neuen Schlüssel fügt einen frischen Eintrag hinzu.

# Dictionary-Elemente ändern und hinzufügen
my_dict = {'name': 'Hans', 'alter': 26}
# Wert aktualisieren
my_dict['alter'] = 27
# Ausgabe: {'alter': 27, 'name': 'Hans'}
print(my_dict)
# Element hinzufügen
my_dict['adresse'] = 'Innenstadt'
# Ausgabe: {'adresse': 'Innenstadt', 'alter': 27, 'name': 'Hans'}
print(my_dict)

Ausgabe

{'name': 'Hans', 'alter': 27} {'name': 'Hans', 'alter': 27, 'adresse': 'Innenstadt'}

Elemente aus einem Dictionary entfernen

Verwenden Sie pop(), um einen bestimmten Schlüssel zu löschen und seinen Wert abzurufen. popitem() entfernt ein beliebiges Paar, während clear() das gesamte Dictionary leert. Das Schlüsselwort del kann einzelne Einträge oder die gesamte Variable löschen.

# Elemente aus einem Dictionary entfernen
# Dictionary erstellen
quadrate = {1: 1, 2: 4, 3: 9, 4: 16, 5: 25}
# bestimmtes Element entfernen, gibt dessen Wert zurück
# Ausgabe: 16
print(quadrate.pop(4))
# Ausgabe: {1: 1, 2: 4, 3: 9, 5: 25}
print(quadrate)
# beliebiges Element entfernen, (key,value) zurückgeben
# Ausgabe: (5, 25)
print(quadrate.popitem())
# Ausgabe: {1: 1, 2: 4, 3: 9}
print(quadrate)
# alle Elemente entfernen
quadrate.clear()
# Ausgabe: {}
print(quadrate)
# Dictionary selbst löschen
del quadrate
# Wirft Fehler
print(quadrate)

Ausgabe

16 {1: 1, 2: 4, 3: 9, 5: 25} (5, 25) {1: 1, 2: 4, 3: 9} {} Traceback (most recent call last): File "<string>", line 30, in <module> print(quadrate) NameError: name 'quadrate' is not defined

Python Dictionary-Methoden

Die folgende Tabelle listet gängige Dictionary-Methoden und ihre Zwecke auf. Viele werden in den folgenden Beispielen demonstriert.

MethodeBeschreibung
clear()Entfernt alle Elemente aus dem Dictionary.
copy()Gibt eine flache Kopie des Dictionaries zurück.
fromkeys(seq[, v])Erstellt ein neues Dictionary aus seq mit jedem Schlüssel auf v gesetzt (Standard None).
get(key[,d])Gibt den Wert für key zurück; falls abwesend, gibt d zurück (Standard None).
items()Gibt eine Ansicht der (Schlüssel, Wert)-Paare des Dictionaries zurück.
keys()Gibt eine Ansicht der Schlüssel des Dictionaries zurück.
pop(key[,d])Löscht key und gibt dessen Wert oder d zurück; löst KeyError aus, wenn key fehlt und d nicht angegeben.
popitem()Entfernt und gibt ein beliebiges (Schlüssel, Wert)-Paar zurück; löst KeyError aus, wenn Dictionary leer.
setdefault(key[,d])Gibt den Wert für key zurück; falls abwesend, fügt key mit Wert d (Standard None) ein und gibt d zurück.
update([other])Fügt Schlüssel/Wert-Paare aus other ein oder aktualisiert sie, überschreibt bestehende Schlüssel.
values()Gibt eine Ansicht der Werte des Dictionaries zurück.

Beispielverwendung:

# Dictionary-Methoden
noten = {}.fromkeys(['Mathe', 'Englisch', 'Naturwissenschaften'], 0)
# Ausgabe: {'Englisch': 0, 'Mathe': 0, 'Naturwissenschaften': 0}
print(noten)
for item in noten.items():
    print(item)
# Ausgabe: ['Englisch', 'Mathe', 'Naturwissenschaften']
print(list(sorted(noten.keys())))

Ausgabe

{'Mathe': 0, 'Englisch': 0, 'Naturwissenschaften': 0} ('Mathe', 0) ('Englisch', 0) ('Naturwissenschaften', 0) ['Englisch', 'Mathe', 'Naturwissenschaften']

Python Dictionary Comprehension

Dictionary Comprehension bietet eine prägnante Syntax zum Erstellen von Dictionaries aus Iterables. Sie folgt dem Muster {key: value for element in iterable}.

# Dictionary Comprehension
quadrate = {x: x*x for x in range(6)}
print(quadrate)

Ausgabe

{0: 0, 1: 1, 2: 4, 3: 9, 4: 16, 5: 25}

Äquivalente imperative Version:

quadrate = {}
for x in range(6):
    quadrate[x] = x*x
print(quadrate)

Ausgabe

{0: 0, 1: 1, 2: 4, 3: 9, 4: 16, 5: 25}

Comprehensions können mehrere Schleifen und if-Filter enthalten. Beispiel: nur ungerade Quadrate.

# Dictionary Comprehension mit if-Bedingung
ungerade_quadrate = {x: x*x for x in range(11) if x % 2 == 1}
print(ungerade_quadrate)

Ausgabe

{1: 1, 3: 9, 5: 25, 7: 49, 9: 81}

Mehr zu Dictionary Comprehensions unter Python Dictionary Comprehension.


Weitere Dictionary-Operationen

Dictionary-Mitgliedschaftstest

Verwenden Sie den in-Operator, um zu prüfen, ob ein Schlüssel existiert; er prüft nicht die Werte.

# Mitgliedschaftstest für Dictionary-Schlüssel
quadrate = {1: 1, 3: 9, 5: 25, 7: 49, 9: 81}
# Ausgabe: True
print(1 in quadrate)
# Ausgabe: True
print(2 not in quadrate)
# Mitgliedschaftstests nur für Schlüssel, nicht für Werte
# Ausgabe: False
print(49 in quadrate)

Ausgabe

True True False

Durch ein Dictionary iterieren

Iterieren Sie direkt über Schlüssel und greifen Sie dann auf Werte zu.

# Durch ein Dictionary iterieren
quadrate = {1: 1, 3: 9, 5: 25, 7: 49, 9: 81}
for i in quadrate:
    print(quadrate[i])

Ausgabe

1 9 25 49 81

Dictionary-Eingebaute-Funktionen

Standardfunktionen wie all(), any(), len() und sorted() werden häufig auf Dictionaries angewendet.

FunktionBeschreibung
all()True, wenn jeder Schlüssel zu True evaluiert (oder Dictionary leer ist).
any()True, wenn irgendein Schlüssel zu True evaluiert; False für leeres Dictionary.
len()Anzahl der Schlüssel/Wert-Paare.
cmp()Vergleicht zwei Dictionaries (in Python 3 entfernt).
sorted()Gibt eine sortierte Liste der Schlüssel zurück.

Beispiele:

# Dictionary-Eingebaute-Funktionen
quadrate = {0: 0, 1: 1, 3: 9, 5: 25, 7: 49, 9: 81}
# Ausgabe: False
print(all(quadrate))
# Ausgabe: True
print(any(quadrate))
# Ausgabe: 6
print(len(quadrate))
# Ausgabe: [0, 1, 3, 5, 7, 9]
print(sorted(quadrate))

Ausgabe

False True 6 [0, 1, 3, 5, 7, 9]

Python

  1. Python-Datentypen meistern: Praxisleitfaden
  2. Python-Operatoren meistern: Umfassender Leitfaden
  3. Python pass-Statement meistern: Praxisleitfaden
  4. Python-Funktionsargumente meistern: Positional, Keyword & Default-Parameter
  5. Python Iteratoren meistern: Funktionsweise und Erstellung eigener Iteratoren
  6. Python Closures erklärt: Wie verschachtelte Funktionen Variablen erfassen
  7. Python datetime meistern: Praktischer Leitfaden zu Datumsangaben, Zeiten und Zeitzonen
  8. Python Überblick: Hochlevel, lesbar, interaktiv & objektorientiert
  9. Python Zahlen: Unveränderliche numerische Datentypen verstehen
  10. Python Strings meistern: Erstellung, Zugriff und Manipulation