Python Dictionary fromkeys ()

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.

Intressanta artiklar...