Dicționar Python fromkeys ()

Metoda fromkeys () creează un dicționar nou din secvența dată de elemente cu o valoare furnizată de utilizator.

Sintaxa fromkeys()metodei este:

 dictionary.fromkeys (secvență (, valoare))

fromkeys () Parametri

fromkeys() metoda are doi parametri:

  • secvență - secvență de elemente care urmează să fie folosită ca chei pentru noul dicționar
  • valoare (Opțional) - valoare care este setată pentru fiecare element al dicționarului

Returnează valoarea de la fromkeys ()

fromkeys() metoda returnează un dicționar nou cu secvența dată de elemente ca chei ale dicționarului.

Dacă argumentul valoare este setat, fiecare element al dicționarului nou creat este setat la valoarea furnizată.

Exemplul 1: Creați un dicționar dintr-o secvență de taste

 # vowels keys keys = ('a', 'e', 'i', 'o', 'u' ) vowels = dict.fromkeys(keys) print(vowels)

Ieșire

 ('a': Niciuna, 'u': Niciuna, 'o': Niciuna, 'e': Niciuna, 'i': Niciuna) 

Exemplul 2: Creați un dicționar dintr-o secvență de taste cu valoare

 # vowels keys keys = ('a', 'e', 'i', 'o', 'u' ) value = 'vowel' vowels = dict.fromkeys(keys, value) print(vowels)

Ieșire

 ('a': 'vocală', 'u': 'vocală', 'o': 'vocală', 'e': 'vocală', 'i': 'vocală') 

Exemplul 3: Creați un dicționar din lista de obiecte mutabile

 # 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)

Ieșire

 („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)) 

Dacă valoarea este un obiect modificabil (a cărui valoare poate fi modificată), cum ar fi listă, dicționar etc., atunci când obiectul modificabil este modificat, fiecare element al secvenței este, de asemenea, actualizat.

Acest lucru se datorează faptului că fiecărui element i se atribuie o referință la același obiect (indică același obiect în memorie).

Pentru a evita această problemă, folosim înțelegerea dicționarului.

 # 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)

Ieșire

 („a”: (1), „u”: (1), „o”: (1), „e”: (1), „i”: (1)) („a”: (1), „u”: (1), „o”: (1), „e”: (1), „i”: (1)) 

Aici, pentru fiecare cheie din chei, se creează și i se atribuie o nouă listă din valoare.

În esență, valoarea nu este atribuită elementului, dar este creată o nouă listă din acesta, care este apoi atribuită fiecărui element din dicționar.

Articole interesante...