Wie man ein Wörterbuch in Python durchläuft
Es ist wichtig zu verstehen, wie man ein Python-Wörterbuch durchläuft. Mit dieser Technik können Sie den Inhalt eines Wörterbuchs lesen, bearbeiten und ausgeben. Schleifen in Python ist einfach. Anfänger könnten es jedoch etwas verwirrend finden, insbesondere wenn es mit einem komplexeren iterierbaren Element wie einem Wörterbuch verwendet wird.
Hier sind einige der Möglichkeiten, wie Sie mit einem Python-Wörterbuch mithilfe von Schleifen umgehen können.
Durchlaufen von Schlüsseln und Werten
Ein Wörterbuch in Python enthält Schlüssel-Wert-Paare. Sie können die Schlüssel mit der Methode keys() durchlaufen:
myDict = {"A" : 2, "B" : 5, "C" : 6}
for i in myDict.keys():
print("Key"+" "+i)
Output:
Key A
Key B
Key CDer obige Code ist jedoch etwas ausführlicher als Sie benötigen. Sie können auf die Schlüssel zugreifen, indem Sie sie direkt aus myDict aufrufen, ohne myDict.keys() zu verwenden .
Das liegt daran, dass eine Python-for-Schleife die Schlüssel standardmäßig auswählt, wenn sie ein Wörterbuch sieht. Sie können den obigen Code stattdessen wie folgt schreiben:
for key in myDict:
print("Key"+ " " +key)
Output:
Key A
Key B
Key C
Um auf die Werte zuzugreifen, verwenden Sie die entsprechende Methode values() :
myDict = {"A" : 2, "B" : 5, "C" : 6}
for i in myDict.values():
print(i)
Output:
2
5
6Ebenso können Sie mit ihren Schlüsseln direkt auf die Werte zugreifen:
for key in myDict:
print(myDict[key])
Output:
2
5
6Beim Durchlaufen eines Wörterbuchs können Sie gleichzeitig auf dessen Schlüssel und Werte zugreifen. Sie können dies auf zwei Arten tun.
Die erste Methode besteht darin, das Wörterbuch zu durchlaufen und mit der Methode dict[key] auf die Werte zuzugreifen. Geben Sie dann jedes Schlüssel-Wert-Paar innerhalb der Schleife aus:
for key in myDict:
print(key, "|", myDict[key])
Output:
A | 2
B | 5
C | 6
Alternativ können Sie mit der Methode items() gleichzeitig auf die Schlüssel und Werte zugreifen:
for key, value in myDict.items():
print(key, "|", value)
Output:
A | 2
B | 5
C | 6
Manchmal möchten Sie das Ergebnis möglicherweise in umgekehrter Reihenfolge ausgeben. So machen Sie das mit der Funktion sorted() :
myDict = {"A" : 2, "B" : 5, "C" : 6}
for key, value in sorted(myDict.items(), reverse=True):
print(key, "|", value)
Output:
C | 6
B | 5
A | 2Konvertieren eines Wörterbuchs in eine Liste
Das Konvertieren eines Wörterbuchs in eine Liste mithilfe von Iteration ist so einfach wie das Umwandeln einer Liste in ein Wörterbuch .
Sie können eine Liste mit einem einzelnen Tupel für jedes Schlüssel-Wert-Paar erstellen:
myDict = {"A" : "MUO", "B" : "Google", "C" : "Python"}
myList = []
for key, value in myDict.items():
myList.append((key, value))
print(myList)
Output: [('A', 'MUO'), ('B', 'Google'), ('C', 'Python')]Oder Sie können das Wörterbuch in eine verschachtelte Liste von Schlüssel-Wert-Paaren konvertieren:
myDict = {"A" : "MUO", "B" : "Google", "C" : "Python"}
myList = []
for key, value in myDict.items():
myList.append([key, value])
print(myList)
Output: [['A', 'MUO'], ['B', 'Google'], ['C', 'Python']]
Und wenn Sie ein Wörterbuch in eine gestreckte oder abgeflachte Liste umwandeln möchten:
myDict = {"A" : "MUO", "B" : "Google", "C" : "Python"}
myList = []
for key, value in myDict.items():
myList+= key, value
print(myList)
Output: ['A', 'MUO', 'B', 'Google', 'C', 'Python']Addieren der Werte in einem Wörterbuch
Es ist einfach, alle Werte in einem Wörterbuch mit einer for- Schleife zu summieren:
myDict = {"A":6, "B":7, "C":9}
g = 0 # initilize a variable to store the running total
for i in myDict.values():
g += i # add each value to the total
print(g)
Output: 22Dies ist ein iteratives Äquivalent zur Verwendung der Funktion sum() , die selbst ein Iterator ist. Sie können die Werte also mit sum() hinzufügen, anstatt wie oben eine Schleife zu durchlaufen:
summedValues = sum(myDict.values())
print(summedValues)
Output: 22Durchlaufen eines verschachtelten Python-Wörterbuchs
Ein verschachteltes Wörterbuch kann zunächst etwas verwirrend sein. Aber es ist so einfach wie eine normale Iteration.
Der folgende Code gibt beispielsweise den Inhalt jeder Liste im Wörterbuch aus:
myDict = {"A" : [1, 2, 3], "B" : [4, 5, 6]}
for i in myDict.keys():
print(myDict[i])
Output:
[1, 2, 3]
[4, 5, 6]
Wie in einem regulären Wörterbuch werden beim Durchschleifen der gesamten Elemente alle Schlüssel-Wert-Paare in einzelnen Tupeln ausgegeben:
myDict = {"A" : [1, 2, 3], "B" : [4, 5, 6]}
for i in myDict.items():
print(i)
Output:
('A', [1, 2, 3])
('B', [4, 5, 6])
Sie können auch bestimmte Werte in einem Wörterbuch anzeigen, das andere Wörterbücher enthält. Beachten Sie jedoch, dass die Werte eines komplexen Wörterbuchs die Elemente anderer Wörterbücher darin sind. Im Wesentlichen enthält ein komplexes Wörterbuch Eltern- und Kindschlüssel.
Lassen Sie uns die Werte im folgenden komplexen Wörterbuch ausgeben, um zu sehen, wie dies funktioniert:
complexArray = {
"Detail" : {
"Name" : "Idowu",
"Logs" : 20,
"isAdmin" : True
},
"Activities" : {
"Inputs" : 14,
"Input Type" : "Video"
}
}
for value in complexArray.values():
print(value)
Output:
{'Name': 'Idowu', 'Logs': 20, 'isAdmin': True}
{'Inputs': 14, 'Input Type': 'Video'}Mit dieser Erkenntnis können Sie bestimmte Werte aus dem obigen Wörterbuch drucken.
So zeigen Sie beispielsweise die Werte von Detail an:
for value in complexArray["Detail"].values():
print(value)
Output:
Idowu
20
TrueMit einer verschachtelten for- Schleife können Sie alle Werte aller untergeordneten Schlüssel sehen:
for value in complexArray.values():
for i in value.values(): # get the values of each key in the child dictionaries
print(i)
Output:
Idowu
20
True
14
VideoUnabhängig von ihrem übergeordneten Wörterbuch gibt die obige Iteration alle untergeordneten Werte aus dem verschachtelten Wörterbuch aus.
Wörterbuchelemente ändern
Da ein Wörterbuch veränderbar ist, können Sie seinen Inhalt beim Durchlaufen beliebig ändern.
Sie können beispielsweise Werte für Schlüssel austauschen und die Ausgabe in ein neues Wörterbuch einfügen:
myDict = {"A" : "MUO", "B" : "Google", "C" : "Python"}
swappedDict = {}
for key, value in myDict.items():
swappedDict[value] = key
print(swappedDict)
Output: {'MUO': 'A', 'Google': 'B', 'Python': 'C'}Sie können das obige auch mit der for- Schleife in einem Wörterbuchverständnis erreichen:
swappedDict = {value:key for key, value in myDict.items()}
print(swappedDict)
Output: {'MUO': 'A', 'Google': 'B', 'Python': 'C'}Sie können auch bestimmte Elemente aus einem Wörterbuch löschen, während Sie es durchlaufen. Dies ist eine ziemlich praktische Methode, um Duplikate zu entfernen.
Der folgende Beispielcode entfernt doppelte Elemente und fügt eines davon nach dem Durchlaufen des Arrays wieder ein:
myDict = {"A" : "MUO", "B" : "Google", "C" : "Python", "C" : "Python"}
for key in list(myDict.keys()):
if key == 'C':
del myDict[key]
myDict[key]="Python"
print(myDict)
Output: {'A': 'MUO', 'B': 'Google', 'C': 'Python'}Spielen Sie mit Python-Wörterbüchern herum
Ein Python-Wörterbuch ist ein wesentliches Werkzeug zum Verwalten von Daten im Speicher. Daher hilft Ihnen ein grundlegendes Verständnis der Wörterbuchdatenstruktur, einschließlich der Art und Weise, wie Sie sie durchlaufen und erhalten, was Sie wollen, in realen Szenarien.
Und da Sie anpassen können, was in einer Python-Schleife passiert, können Sie Ihre Ausgabe manipulieren. Dennoch ist das Durchlaufen eines Python-Wörterbuchs einfach, wenn Sie die grundlegenden Konzepte der Python-Schleife verstanden haben.
