
In Python can SIE ein Wörterbuch-Diktat mit geschweiften Klammern {}, dict() und Wörterbuch-Verständnissen erstellen.
Dieser Artikel hat folgenden Inhalt.
- Erstellen Sie ein Wörterbuch mit geschweiften Klammern {}
- Geben Sie Schlüssel und Werte an
- Führen Sie mehrere Wörterbücher zusammen
- Erstellen Sie ein Wörterbuch mit dict()
- Verwenden Sie Schlüsselwortargumente
- Mit einer Liste von Schlüssel/Wert-Paaren
- Mit einer Liste von Schlüsseln und einer Liste von Werten
- Mit einem anderen Wörterbuch
- Erstellen Sie ein Wörterbuch mit Wörterbuchverständnissen
Weitere Informationen zu Wörterbüchern, zum Hinzufügen und Entfernen von Elementen und zum Überprüfen ihrer Existenz finden Sie in den folgenden Artikeln.
Erstellen Sie ein Wörterbuch mit geschweiften Klammern {}
Geben Sie Schlüssel und Werte an
Sie können ein Wörterbuch erstellen, indem Sie den Schlüssel und den Wert als Schlüssel: Wert in geschweiften Klammern {} schreiben.
{key: value, key: value, ...}
d = {'k1': 1, 'k2': 2, 'k3': 3}
print(d)
# {'k1': 1, 'k2': 2, 'k3': 3}
Da derselbe Schlüssel nicht im Wörterbuch registriert werden kann, wird er überschrieben, wenn derselbe Schlüssel angegeben wird.
d = {'k1': 1, 'k2': 2, 'k3': 3, 'k3': 300}
print(d)
# {'k1': 1, 'k2': 2, 'k3': 300}
Führen Sie mehrere Wörterbücher zusammen
Seit Python 3.5 können Sie wie {**d1, **d2} schreiben.
Sie können ein neues Wörterbuch erstellen, indem Sie zwei Wörterbücher wie folgt zusammenführen. Die ursprünglichen Wörterbücher werden nicht aktualisiert.
d1 = {'k1': 1, 'k2': 2}
d2 = {'k3': 3, 'k4': 4}
d = {**d1, **d2}
print(d)
# {'k1': 1, 'k2': 2, 'k3': 3, 'k4': 4}
print(d1)
# {'k1': 1, 'k2': 2}
print(d2)
# {'k3': 3, 'k4': 4}
Es kann auch mit Schlüssel: Wert verwendet werden.
print({**d1, **d2, 'k5': 5})
# {'k1': 1, 'k2': 2, 'k3': 3, 'k4': 4, 'k5': 5}
Sie können drei oder mehr Wörterbücher angeben.
d3 = {'k5': 5, 'k6': 6}
print({**d1, **d2, **d3})
# {'k1': 1, 'k2': 2, 'k3': 3, 'k4': 4, 'k5': 5, 'k6': 6}
Wenn derselbe Schlüssel angegeben WIRD, WIRD er überschrieben.
d4 = {'k1': 100, 'k3': 300}
print({**d1, **d2, **d3, **d4, 'k5': 500})
# {'k1': 100, 'k2': 2, 'k3': 300, 'k4': 4, 'k5': 500, 'k6': 6}
Wenn SIE ein neues Wörterbuch verwenden aus mehreren Wörterbüchern in verschiedenen Versionen erstellen möchten, SIE dict(**d1, **d2) wie unten.
Seit Python 3.9 ist es möglich, mehrere Wörterbücher mit dem | Operator. Nichts finden Sie im folgenden Artikel.
Erstellen Sie ein Wörterbuch mit dict()
Sie können ein Wörterbuch mit dict() erstellen.
Es gibt mehrere Möglichkeiten, Argumente anzugeben.
Verwenden Sie Schlüsselwortargumente
Er kann mit dem Schlüsselwortargument key=value angegeben werden.
d = dict(k1=1, k2=2, k3=3)
print(d)
# {'k1': 1, 'k2': 2, 'k3': 3}
In diesem Fall können Sie nur gültige Buchstaben als Variablennamen als Schlüssel angeben. Es darf nicht mit einer Zahl beginnen oder andere Symbole als _ enthalten.
Wenn derselbe Schlüssel angegeben WIRD, WIRD ein Fehler ausgelöst.
# d = dict(k1=1, k2=2, k3=3, k3=300)
# SyntaxError: keyword argument repeated: k3
Mit einer Liste von Schlüssel/Wert-Paaren
Sie können auch eine Liste von Schlüssel-Wert-Paaren angeben (z. B. ein Tupel (Schlüssel, Wert)).
d = dict([('k1', 1), ('k2', 2), ('k3', 3)])
print(d)
# {'k1': 1, 'k2': 2, 'k3': 3}
Es kann jede Iterable sein, deren Elemente Iterables mit einem Schlüssel und einem Wert sind. Sie kann beispielsweise als Tupel von Listen oder als Liste von Listen angegeben werden.
d = dict((['k1', 1], ['k2', 2], ['k3', 3]))
print(d)
# {'k1': 1, 'k2': 2, 'k3': 3}
In diesem Fall liegt kein Fehler vor, selbst wenn die Schlüssel dupliziert werden. Er wird durch den Wert des späteren Artikels überschrieben.
d = dict([('k1', 1), ('k2', 2), ('k3', 3), ('k3', 300)])
print(d)
# {'k1': 1, 'k2': 2, 'k3': 300}
Mit einer Liste von Schlüsseln und einer Liste von Werten
Mit zip() can SIE ein Wörterbuch aus einer Liste von Schlüsseln und einer Liste von Werten erstellen. Es können nicht nur Listen, sondern auch Tupel verwendet werden.
keys = ['k1', 'k2', 'k3']
values = [1, 2, 3]
d = dict(zip(keys, values))
print(d)
# {'k1': 1, 'k2': 2, 'k3': 3}
Siehe den folgenden Artikel über zip().
Auch in diesem Fall tritt kein Fehler auf, selbst wenn es doppelte Schlüssel gibt, obwohl hier kein Beispiel gezeigt wird. Er wird durch den späteren Wert überschrieben.
If SIE Werte in Einer Liste manipulieren oder Elemente basierend auf Bedingungen auswählen möchten, verwenden SIE sterben unten Wörterbuchverständnis beschriebene.
Mit einem anderen Wörterbuch
Wenn ein anderes Wörterbuch als Argument von dict() angegeben WIRD, WIRD ein Wörterbuch mit Schlüsseln und Werten erstellt.
d_other = {'k10': 10, 'k100': 100}
d = dict(d_other)
print(d)
# {'k10': 10, 'k100': 100}
In diesem Fall wird eine flache Kopie erstellt. Wenn der Wert veränderliche Objekte wie Wörterbücher oder Listen enthält, handelt es sich im Original und in der Kopie um dasselbe Objekt. Wenn auch eines aktualisiert WIRD, WIRD auch das andere aktualisiert.
Es WIRD Ein Fehler ausgelöst, Wenn mehrere Wörterbücher als Argument von dict() angegeben werden.
d1 = {'k1': 1, 'k2': 2}
d2 = {'k3': 3, 'k4': 4}
# d = dict(d1, d2)
# TypeError: dict expected at most 1 arguments, got 2
Wie oben erwähnt, can SIE mit dict() Schlüssel und Werte als Schlüsselwortargumente angeben (Schlüssel=Wert), sodass SIE dem Wörterbuch ** hinzufügen und jedes Element als Schlüsselwortargument übergeben können.
d = dict(**d1, **d2)
print(d)
# {'k1': 1, 'k2': 2, 'k3': 3, 'k4': 4}
Beachten Sie, dass doppelte Schlüssel in diesem Fall einen Fehler verursachen.
Wie oben erwähnt, ist es auch möglich, {**d1, **d2} von Python 3.5 zu verwenden, in diesem Fall sind doppelte Schlüssel kein Problem.
d1 = {'k1': 1, 'k2': 2}
d2 = {'k1': 100, 'k3': 3}
# d = dict(**d1, **d2)
# TypeError: dict() got multiple values for keyword argument 'k1'
d = {**d1, **d2}
print(d)
# {'k1': 100, 'k2': 2, 'k3': 3}
Erstellen Sie ein Wörterbuch mit Wörterbuchverständnissen
Genauso wie Listen mit Listenverständnissen erstellt werden can, can Wörterbücher mit Wörterbuchverständnissen erstellt werden.
Der Unterschied zu Hörverständnissen besteht darin, dass Wörterbuchverständnisse in {} statt in [] Eingeschlossen Sind und Schlüssel und Werte angegeben Werden.
{key: value for variable_name in iterable}
Sie können einen beliebigen Ausdruck für Schlüssel und Wert angeben.
l = ['Alice', 'Bob', 'Charlie']
d = {s: len(s) for s in l}
print(d)
# {'Alice': 5, 'Bob': 3, 'Charlie': 7}
Um ein Wörterbuch aus einer Liste von Schlüsseln und einer Liste von Werten zu erstellen, verwenden Sie zip() wie im Fall von dict().
keys = ['k1', 'k2', 'k3']
values = [1, 2, 3]
d = {k: v for k, v in zip(keys, values)}
print(d)
# {'k1': 1, 'k2': 2, 'k3': 3}
Bedingte Verzweigung durch if ist auch mit Dictionary Comprehensions möglich.
Wenn Sie ein Wörterbuch einfach aus einer Liste erstellen möchten, können Sie dict() wie oben beschrieben verwenden, aber wenn Sie Werte gemäß manipulieren oder Elemente Bedingungen auswählen möchten, sind Wörterbuchverständnisse nützlich.
d = {k: v for k, v in zip(keys, values) if v % 2 == 1}
print(d)
# {'k1': 1, 'k3': 3}
Es kann auch used Werden, um ein neues Wörterbuch zu erstellen, indem Elemente aus einem vorhandenen Wörterbuch extrahiert oder entfernt werden, sterben sterben Bedingung erfüllen.
d = {'apple': 1, 'banana': 10, 'orange': 100}
dc = {k: v for k, v in d.items() if v % 2 == 0}
print(dc)
# {'banana': 10, 'orange': 100}
dc = {k: v for k, v in d.items() if v % 2 == 1}
print(dc)
# {'apple': 1}
dc = {k: v for k, v in d.items() if k.endswith('e')}
print(dc)
# {'apple': 1, 'orange': 100}
dc = {k: v for k, v in d.items() if not k.endswith('e')}
print(dc)
# {'banana': 10}
dc = {k: v for k, v in d.items() if v % 2 == 0 and k.endswith('e')}
print(dc)
# {'orange': 100}
Die Methode items() von dict WIRD used, um Schlüssel und Werte zu extrahieren.