English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Die Methode fromkeys() erstellt basierend auf der angegebenen Elementfolge ein neues Dictionary, das die vom Benutzer bereitgestellten Werte hat.
Die Syntax der Methode fromkeys() ist:
dictionary.fromkeys(sequence[, value])
Die Methode fromkeys() nimmt zwei Parameter an:
sequence -Die Elementfolge, die als Schlüssel des neuen Dictionaries verwendet wird
value (optional) -Der Wert, der für jedes Element des Dictionaries festgelegt wird
Die Methode fromkeys() gibt ein neues Dictionary zurück, das die angegebene Elementfolge als Schlüssel des Dictionaries hat.
Wenn der value-Parameter gesetzt ist, wird jeder neue Dictionary-Element auf den angegebenen value-Wert gesetzt.
# Vokal-Schlüssel keys = {'a', 'e', 'i', 'o', 'u'} vowels = dict.fromkeys(keys) print(vowels)
Wenn Sie das Programm ausführen, wird die Ausgabe wie folgt sein:
{'a': None, 'u': None, 'o': None, 'e': None, 'i': None}
# Vokal-Schlüssel keys = {'a', 'e', 'i', 'o', 'u'} value = 'vowel' vowels = dict.fromkeys(keys, value) print(vowels)
Wenn Sie das Programm ausführen, wird die Ausgabe wie folgt sein:
{'a': 'vowel', 'u': 'vowel', 'o': 'vowel', 'e': 'vowel', 'i': 'vowel'}
# Vokal-Schlüssel keys = {'a', 'e', 'i', 'o', 'u'} value = [1] vowels = dict.fromkeys(keys, value) print(vowels) # Neuer Wert value.append(2) print(vowels)
Wenn Sie das Programm ausführen, wird die Ausgabe wie folgt sein:
{'a': [1], 'u': [1], 'o': [1], 'e': [1], 'i': [1}] {'a': [1, 2], 'u': [1, 2], 'o': [1, 2], 'e': [1, 2], 'i': [1, 2}]
Wenn der angegebene value ein veränderbares Objekt (dessen Wert geändert werden kann) ist, wieListe,WörterbuchWenn, dann wird bei der Änderung eines veränderbaren Objekts jeder Element der Sequenz aktualisiert.
Das liegt daran, dass für jedes Element eine Referenz auf dasselbe Objekt zugewiesen wird (der auf das gleiche Objekt im Speicher verweist).
Um dieses Problem zu vermeiden, verwenden wir Dictionary-Verständnis.
# Vokal-Schlüssel keys = {'a', 'e', 'i', 'o', 'u'} value = [1] vowels = { key: list(value) for key in keys } # Sie können auch { key: value[:] for key in keys } verwenden print(vowels) # Neuer Wert value.append(2) print(vowels)
Wenn Sie das Programm ausführen, wird die Ausgabe wie folgt sein:
{'a': [1], 'u': [1], 'o': [1], 'e': [1], 'i': [1}] {'a': [1], 'u': [1], 'o': [1], 'e': [1], 'i': [1}]
Hier wird für jeden Schlüssel in keys eine neue Liste aus value erstellt und ihr zugewiesen.
In der Hauptsache wird value nicht dem Element zugewiesen, sondern aus ihm eine neue Liste erstellt, die dann jedem Element im Dictionary zugewiesen wird.