Slovník Pythonu fromkeys ()

Metoda fromkeys () vytvoří nový slovník z dané posloupnosti prvků s hodnotou poskytnutou uživatelem.

Syntaxe fromkeys()metody je:

 dictionary.fromkeys (sequence (, value))

fromkeys () Parametry

fromkeys() metoda má dva parametry:

  • posloupnost - posloupnost prvků, které mají být použity jako klíče pro nový slovník
  • value (Optional) - hodnota, která je nastavena na každý jednotlivý prvek slovníku

Vrátit hodnotu z fromkeys ()

fromkeys() metoda vrací nový slovník s danou posloupností prvků jako klávesami slovníku.

Pokud je nastaven argument hodnoty, každý prvek nově vytvořeného slovníku je nastaven na zadanou hodnotu.

Příklad 1: Vytvořte slovník ze sekvence kláves

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

Výstup

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

Příklad 2: Vytvořte slovník ze sekvence kláves s hodnotou

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

Výstup

 ('a': 'samohláska', 'u': 'samohláska', 'o': 'samohláska', 'e': 'samohláska', 'i': 'samohláska') 

Příklad 3: Vytvořte slovník ze seznamu proměnlivých 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)

Výstup

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

Pokud value je proměnlivý objekt (jehož hodnotu lze upravit), jako je seznam, slovník atd., Je při změně měnitelného objektu aktualizován také každý prvek sekvence.

Je tomu tak proto, že každému prvku je přiřazen odkaz na stejný objekt (ukazuje na stejný objekt v paměti).

Abychom se tomuto problému vyhnuli, používáme slovníkové porozumění.

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

Výstup

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

Zde je pro každý klíč v klíčích vytvořen a přiřazen nový seznam z hodnoty.

V podstatě hodnota není přiřazena prvku, ale je z něj vytvořen nový seznam, který je pak přiřazen každému prvku ve slovníku.

Zajímavé články...