Речник на Python fromkeys ()

Методът 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)) 

Тук за всеки ключ в ключовете се създава и му се присвоява нов списък от стойност.

По същество стойността не се присвоява на елемента, но от него се създава нов списък, който след това се присвоява на всеки елемент в речника.

Интересни статии...