Python Dictionary fromkeys ()

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.

Interessante artikler...