Методът fromkeys () създава нов речник от дадената последователност от елементи със стойност, предоставена от потребителя.
Синтаксисът на fromkeys()
метода е:
dictionary.fromkeys (последователност (, стойност))
fromkeys () Параметри
fromkeys()
методът взема два параметъра:
- последователност - последователност от елементи, която ще се използва като ключове за новия речник
- стойност (по избор) - стойност, която се задава за всеки елемент от речника
Върната стойност от fromkeys ()
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))
Тук за всеки ключ в ключовете се създава и му се присвоява нов списък от стойност.
По същество стойността не се присвоява на елемента, но от него се създава нов списък, който след това се присвоява на всеки елемент в речника.