Metoden fromkeys () skapar en ny ordlista från den givna sekvensen av element med ett värde som tillhandahålls av användaren.
Syntaxen för fromkeys()
metoden är:
dictionary.fromkeys (sekvens (, värde))
fromkeys () Parametrar
fromkeys()
metoden tar två parametrar:
- sekvens - sekvens av element som ska användas som tangenter för den nya ordlistan
- värde (Valfritt) - värde som ställs in för varje element i ordboken
Returvärde från fromkeys ()
fromkeys()
metoden returnerar en ny ordlista med den givna sekvensen av element som ordbokens nycklar.
Om värdeargumentet är inställt, ställs varje element i den nyskapade ordboken in i det angivna värdet.
Exempel 1: Skapa en ordbok från en sekvens av tangenter
# vowels keys keys = ('a', 'e', 'i', 'o', 'u' ) vowels = dict.fromkeys(keys) print(vowels)
Produktion
('a': Ingen, 'u': Ingen, 'o': Ingen, 'e': Ingen, 'i': Ingen)
Exempel 2: Skapa en ordbok från en sekvens av tangenter med värde
# vowels keys keys = ('a', 'e', 'i', 'o', 'u' ) value = 'vowel' vowels = dict.fromkeys(keys, value) print(vowels)
Produktion
('a': 'vokal', 'u': 'vokal', 'o': 'vokal', 'e': 'vokal', 'i': 'vokal')
Exempel 3: Skapa en ordlista från listan över mutabla objekt
# vowels keys keys = ('a', 'e', 'i', 'o', 'u' ) value = (1) vowels = dict.fromkeys(keys, value) print(vowels) # updating the value value.append(2) print(vowels)
Produktion
('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))
Om värdet är ett föränderligt objekt (vars värde kan ändras) som lista, ordlista etc., när det föränderliga objektet ändras, uppdateras också varje element i sekvensen.
Detta beror på att varje element tilldelas en referens till samma objekt (pekar på samma objekt i minnet).
För att undvika detta problem använder vi ordförståelse.
# vowels keys keys = ('a', 'e', 'i', 'o', 'u' ) value = (1) vowels = ( key : list(value) for key in keys ) # you can also use ( key : value(:) for key in keys ) print(vowels) # updating the value value.append(2) print(vowels)
Produktion
('a': (1), 'u': (1), 'o': (1), 'e': (1), 'i': (1)) ('a': (1), 'u': (1), 'o': (1), 'e': (1), 'i': (1))
Här skapas en ny lista från värde för varje tangent i nycklar och tilldelas den.
I grund och botten tilldelas inte värdet till elementet men en ny lista skapas från det, som sedan tilldelas varje element i ordboken.