Czasami konieczne jest utworzenie słownika z podanych kluczy. Robienie tego z grubsza zajęłoby trochę czasu i byłoby bardziej żmudną pracą. Stąd fromkeys() pomaga nam łatwo rozwiązać ten problem przy użyciu tylko jednej metody. W tym artykule wyjaśniono operacyjne i inne aspekty związane z tą funkcją.
Składnia: fromkeys (seq, val)
Parametry:
seq: Sekwencja do przekształcenia w słownik.
val: Początkowe wartości, które należy przypisać do wygenerowanych kluczy ... Domyślnie Brak.Zwraca: Słownik z kluczami zmapowanymi na Brak, jeśli nie podano wartości, w przeciwnym razie na wartość podaną w polu.
Kod nr 1: Demonstracja z klawiszy od ()
|
Wyjście:
Nowo utworzony dykt z wartościami Brak: {’d’: Brak, ’a’: Brak, ’b’: Brak, ’c’: Brak, ’e’: Brak }
< /blockquote>
Nowo utworzony dict z 1 jako wartością: {’ d ’: 1,’ a ’: 1,’ b ’: 1,’ c ’: 1,’ e ’: 1}Zachowanie fromdict() z obiektami mutowalnymi jako wartościami:
Funkcja fromdict() może być również dostarczona z obiektem multilatable jako wartościami domyślnymi. Ale w tym przypadku głęboka kopia jest tworzona ze słownika, to znaczy, jeśli dodamy wartość do oryginalnej listy, dodanie nastąpi we wszystkich kluczowych wartościach.
Zapobieganie: Do tworzenia nowej listy jako wartości klucza, która nie wskazuje oryginalnej listy jako wartości klucza, można użyć pewnych technik rozumienia słownika.
Kod nr 2: Zademonstruj zachowanie z modyfikowalnymi obiektami.
< td class = "code">
# kod demonstracyjny Pythona 3
# zachowanie ze zmiennymi obiektami
p>
# inicjalizacja sekwencji i listy
seq
=
{
’a’
,
’ b’
,
’c’
,
’d’
,
’ e’
}
lis1
=
[
2
,
3
]
# używanie klawiszy from() do konwersji sekwencji na dict
# przy użyciu normalnej metody
res_dict
=
dict
. fromkeys (seq, lis1)
# Drukuj utworzony dict
(
"Nowo utworzony dict z wartościami listy:"
+
str
(res_dict))
< br />
# dodaj do lis1
lis1.append (
4
)
# Wydrukuj dyktat po dodaniu
# Pamiętaj, że dodawanie występuje we wszystkich wartościach
(
" Dykta z listą wartości po dołączeniu: "
+
str
(res_dict) )
lis1
=
[
2
,
3
]
(
’’
)
# używając fromkeys () do konwersji sekwencji na dict
# używając dict. zrozumienie
res_dict2
=
{key:
list
(lis1)
for
klucz
w
seq}
# Drukuj utworzony dict
(
" Nowo utworzony słownik z wartościami listy: "
+
str
(res_dict2))
# dodaj do lis1
lis1.append (
4
)
# Drukuj dyktat po dodaniu
# Pamiętaj, że dodawanie nie jest teraz wykonywane.
(
" Dykta z listą wartości po dołączeniu (bez zmian): "
+
str
(res_dict2))
Dane wyjściowe:
Nowo utworzony dict z wartościami listy: {’d’: [2, 3], ’e’: [2, 3], ’c’: [2, 3] , ’a’: [2, 3], ’b’: [2, 3]}
Dykta z listą wartości po dodaniu: {’d’: [2, 3, 4], ’e’: [2, 3, 4], ’c’: [2, 3, 4], ’a’: [2, 3, 4], ’b’: [2, 3, 4] }Nowo utworzony dict z wartościami listy: {’d’: [2, 3], ’e’: [2, 3], ’c’: [2, 3], ’a’ : [2, 3], ’b’: [2, 3]}
Dykta z listą wartości po dołączeniu (bez zmian): {’d’: [2, 3], ’e’: [2, 3], ’c’ : [2, 3], ’a’: [2, 3], ’b’: [2, 3]}