Slovník je sbírka klíč-hodnota páry v Pythonu. Pro přístup k jeho hodnotám lze použít klíče slovníku. Jsou však chvíle, kdy chcete páry klíč–hodnota extrahovat a přiřadit je proměnným. Zde přichází na řadu rozbalování slovníku.
Chcete-li rozbalit slovník v Pythonu, můžete použít následující syntaxi:
my_dict = {'name': 'John', 'age': 30, 'city': 'New York'} name, age, city = my_dict.values() print(name) print(age) print(city)
Výstup:
John 30 New York
V tomto příkladu máme slovník můj_dikt se třemi páry klíč–hodnota. K extrakci hodnot ze slovníku a jejich přiřazení k proměnným používáme hodnoty() metoda slovníku. Hodnoty slovníku jsou reprezentovány v seznamu podobnému objektu, který tato metoda vrací. Hodnoty jsou následně přiřazeny konkrétním proměnným pomocí operátor vybalení (*). Protože odpovídá pořadí, ve kterém se hodnoty objevují v hodnoty() je rozhodující pořadí, ve kterém proměnné přiřadíme.
Uvědomte si, že počet proměnných a hodnoty slovníku se musí shodovat. Pokud se pokusíte rozbalit slovník s více nebo méně proměnnými než hodnotami, dostanete a ValueError .
Slovník můžete také rozbalit do pojmenovaných proměnných pomocí syntaxe rozbalení slovníku:
my_dict = {'name': 'John', 'age': 30, 'city': 'New York'} name, age, city = my_dict['name'], my_dict['age'], my_dict['city'] print(name) print(age) print(city)
Výstup:
John 30 New York
V tomto příkladu přistupujeme k hodnotám slovníku pomocí jejich klíčů a přiřazujeme je k pojmenovaným proměnným. Když potřebujete extrahovat konkrétní hodnoty ze slovníku, je tato metoda užitečná.
Nakonec můžete použít ** operátor k rozbalení slovníku do pojmenovaných argumentů při volání funkce. Například:
def print_person(name, age, city): print(f'{name} is {age} years old and lives in {city}') my_dict = {'name': 'John', 'age': 30, 'city': 'New York'} print_person(**my_dict)
Výstup:
John is 30 years old and lives in New York
V tomto příkladu definujeme funkci print_person to chce tři argumenty: jméno věk , a město . Poté vytvoříme slovník můj_dikt obsahující hodnoty těchto argumentů. Používáme slovník vybalovací operátor ** k předání hodnot slovníku jako pojmenovaných argumentů funkci. Výsledek je stejný jako při volání print_person('John', 30, 'New York') .