Słownik Pythona fromkeys ()

Metoda fromkeys () tworzy nowy słownik z podanej sekwencji elementów o wartości podanej przez użytkownika.

Składnia fromkeys()metody to:

 słownik.fromkeys (sekwencja (, wartość))

fromkeys () Parametry

fromkeys() metoda przyjmuje dwa parametry:

  • sekwencja - sekwencja elementów, która ma służyć jako klucze dla nowego słownika
  • wartość (opcjonalna) - wartość, która jest nadawana każdemu elementowi słownika

Wartość zwracana z fromkeys ()

fromkeys() metoda zwraca nowy słownik z podaną sekwencją elementów jako klucze słownika.

Jeśli argument wartość jest ustawiony, każdy element nowo utworzonego słownika jest ustawiany na podaną wartość.

Przykład 1: Utwórz słownik z sekwencji kluczy

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

Wynik

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

Przykład 2: Utwórz słownik z sekwencji kluczy z wartością

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

Wynik

 ('a': 'samogłoska', 'u': 'samogłoska', 'o': 'samogłoska', 'e': 'samogłoska', 'i': 'samogłoska') 

Przykład 3: Utwórz słownik z listy obiektów mutowalnych

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

Wynik

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

Jeśli wartość jest zmiennym obiektem (którego wartość można modyfikować), takim jak lista, słownik itp., Gdy modyfikowany obiekt jest modyfikowany, każdy element sekwencji również zostanie zaktualizowany.

Dzieje się tak, ponieważ każdy element ma przypisane odniesienie do tego samego obiektu (wskazuje na ten sam obiekt w pamięci).

Aby uniknąć tego problemu, używamy rozumienia ze słownika.

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

Wynik

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

Tutaj dla każdego klucza w kluczach tworzona jest nowa lista z wartości i jest do niej przypisywana.

W istocie wartość nie jest przypisywana do elementu, ale tworzona jest z niej nowa lista, która jest następnie przypisywana do każdego elementu w słowniku.

Interesujące artykuły...