Fromkeys () -metoden oppretter en ny ordbok fra den gitte rekkefølgen av elementer med en verdi gitt av brukeren.
Syntaksen for fromkeys()
metoden er:
dictionary.fromkeys (sekvens (, verdi))
fromkeys () Parametere
fromkeys()
metoden tar to parametere:
- sekvens - sekvens av elementer som skal brukes som nøkler for den nye ordboken
- verdi (Valgfritt) - verdi som er satt til hvert enkelt element i ordboken
Returverdi fra fromkeys ()
fromkeys()
metoden returnerer en ny ordbok med den gitte rekkefølgen av elementer som tastene til ordboken.
Hvis verdiorgumentet er satt, settes hvert element i den nyopprettede ordboken til den angitte verdien.
Eksempel 1: Lag en ordbok fra en sekvens av taster
# vowels keys keys = ('a', 'e', 'i', 'o', 'u' ) vowels = dict.fromkeys(keys) print(vowels)
Produksjon
('a': Ingen, 'u': Ingen, 'o': Ingen, 'e': Ingen, 'i': Ingen)
Eksempel 2: Lag en ordbok fra en sekvens av taster med verdi
# vowels keys keys = ('a', 'e', 'i', 'o', 'u' ) value = 'vowel' vowels = dict.fromkeys(keys, value) print(vowels)
Produksjon
('a': 'vokal', 'u': 'vokal', 'o': 'vokal', 'e': 'vokal', 'i': 'vokal')
Eksempel 3: Opprett en ordbok fra listen over mutable objekter
# 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)
Produksjon
('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))
Hvis verdien er et foranderlig objekt (hvis verdi kan endres) som liste, ordbok, etc., når det foranderlige objektet endres, blir hvert element i sekvensen også oppdatert.
Dette er fordi hvert element tildeles en referanse til det samme objektet (peker på det samme objektet i minnet).
For å unngå dette problemet bruker vi ordforstå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)
Produksjon
('a': (1), 'u': (1), 'o': (1), 'e': (1), 'i': (1)) ('a': (1), 'u': (1), 'o': (1), 'e': (1), 'i': (1))
Her, for hver tast i tastene, opprettes en ny liste fra verdi som tildeles den.
I hovedsak tildeles ikke verdien til elementet, men det opprettes en ny liste fra det, som deretter tildeles hvert element i ordboken.