Словник Python fromkeys ()

Метод fromkeys () створює новий словник із заданої послідовності елементів зі значенням, наданим користувачем.

Синтаксис fromkeys()методу:

 dictionary.fromkeys (послідовність (, значення))

Параметри fromkeys ()

fromkeys() метод приймає два параметри:

  • послідовність - послідовність елементів, яка використовуватиметься як ключ для нового словника
  • значення (Необов’язково) - значення, яке встановлюється для кожного елемента словника

Повернене значення від ключів from ()

fromkeys() метод повертає новий словник із заданою послідовністю елементів як ключі словника.

Якщо встановлено аргумент значення, для кожного елемента новоствореного словника встановлюється значення, яке надається.

Приклад 1: Створіть словник із послідовності ключів

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

Вихідні дані

 ("a": немає, "u": немає, "o": немає, "e": немає, "i": немає) 

Приклад 2: Створіть словник із послідовності ключів зі значенням

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

Вихідні дані

 ('a': 'голосна', 'u': 'голосна', 'o': 'голосна', 'e': 'голосна', 'i': 'голосна') 

Приклад 3: Створіть словник зі списку змінних об’єктів

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

Вихідні дані

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

Якщо значення є змінним об'єктом (значення якого може бути змінено), як список, словник тощо, коли змінений об'єкт змінюється, кожен елемент послідовності також оновлюється.

Це тому, що кожному елементу присвоюється посилання на один і той же об’єкт (вказує на той самий об’єкт у пам’яті).

Щоб уникнути цієї проблеми, ми використовуємо розуміння словника.

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

Вихідні дані

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

Тут для кожного ключа в ключах створюється новий список зі значенням, який йому присвоюється.

По суті, елементу не присвоюється значення, але з нього створюється новий список, який потім присвоюється кожному елементу в словнику.

Цікаві статті...