Как добавить в словарь в Python
Введение
Словарь — это встроенный тип данных Python. Словарь представляет собой последовательность пар ключ-значение. Словари являются изменяемыми объектами, однако ключи словаря неизменны и должны быть уникальными в каждом словаре. Встроенного метода добавления нет, но есть несколько способов добавления и обновления словаря. В этой статье вы будете использовать оператор присваивания Python, метод update()
, а также операторы слияния и обновления словарей для добавления и обновления словарей Python.
Добавление в словарь с помощью оператора присваивания =
Вы можете использовать оператор присваивания =
, чтобы добавить новый ключ в словарь:
dict[key] = value
Если ключ уже существует в словаре, то оператор присваивания обновляет или перезаписывает значение.
В следующем примере показано, как создать новый словарь, а затем использовать оператор присваивания =
для обновления значения и добавления пар ключ-значение:
dict_example = {'a': 1, 'b': 2}
print("original dictionary: ", dict_example)
dict_example['a'] = 100 # existing key, overwrite
dict_example['c'] = 3 # new key, add
dict_example['d'] = 4 # new key, add
print("updated dictionary: ", dict_example)
Результат:
Outputoriginal dictionary: {'a': 1, 'b': 2}
updated dictionary: {'a': 100, 'b': 2, 'c': 3, 'd': 4}
Вывод показывает, что значение a
заменено новым значением, значение b
не изменилось, а для c
добавлены новые пары ключ-значение и d
.
Добавление в словарь без перезаписи значений
Использование оператора присваивания =
перезаписывает значения существующих ключей новыми значениями. Если вы знаете, что в вашей программе могут быть повторяющиеся ключи, но не хотите перезаписывать исходные значения, вы можете условно добавить значения с помощью оператора if
.
Продолжая пример из предыдущего раздела, вы можете использовать операторы if
для добавления в словарь только новых пар ключ-значение:
dict_example = {'a': 1, 'b': 2}
print("original dictionary: ", dict_example)
dict_example['a'] = 100 # existing key, overwrite
dict_example['c'] = 3 # new key, add
dict_example['d'] = 4 # new key, add
print("updated dictionary: ", dict_example)
# add the following if statements
if 'c' not in dict_example.keys():
dict_example['c'] = 300
if 'e' not in dict_example.keys():
dict_example['e'] = 5
print("conditionally updated dictionary: ", dict_example)
Результат:
Outputoriginal dictionary: {'a': 1, 'b': 2}
updated dictionary: {'a': 100, 'b': 2, 'c': 3, 'd': 4}
conditionally updated dictionary: {'a': 100, 'b': 2, 'c': 3, 'd': 4, 'e': 5}
Вывод показывает, что из-за условия if
значение c
не изменилось при условном обновлении словаря.
Добавление в словарь с помощью метода update()
Вы можете добавить словарь или итерацию пар ключ-значение в словарь, используя метод update()
. Метод update()
перезаписывает значения существующих ключей новыми значениями.
В следующем примере показано, как создать новый словарь, использовать метод update()
для добавления новой пары ключ-значение и нового словаря и распечатать каждый результат:
site = {'Website':'DigitalOcean', 'Tutorial':'How To Add to a Python Dictionary'}
print("original dictionary: ", site)
# update the dictionary with the author key-value pair
site.update({'Author':'Sammy Shark'})
print("updated with Author: ", site)
# create a new dictionary
guests = {'Guest1':'Dino Sammy', 'Guest2':'Xray Sammy'}
# update the original dictionary with the new dictionary
site.update(guests)
print("updated with new dictionary: ", site)
Результат:
Outputoriginal dictionary: {'Website': 'DigitalOcean', 'Tutorial': 'How To Add to a Python Dictionary'}
updated with Author: {'Website': 'DigitalOcean', 'Tutorial': 'How To Add to a Python Dictionary', 'Author': 'Sammy Shark'}
updated with new dictionary: {'Website': 'DigitalOcean', 'Tutorial': 'How To Add to a Python Dictionary', 'Author': 'Sammy Shark', 'Guest1': 'Dino Sammy', 'Guest2': 'Xray Sammy'}
Вывод показывает, что первое обновление добавляет новую пару ключ-значение, а второе обновление добавляет пары ключ-значение из словаря guest
в словарь site
. Обратите внимание, что если ваше обновление словаря включает существующий ключ, то старое значение перезаписывается обновлением.
Добавление в словарь с помощью слияния | Оператор
Вы можете использовать оператор слияния словарей |
, представленный символом вертикальной черты, для слияния двух словарей и возврата нового объекта словаря.
В следующем примере показано, как создать два словаря и использовать оператор слияния для создания нового словаря, содержащего пары ключ-значение из обоих:
site = {'Website':'DigitalOcean', 'Tutorial':'How To Add to a Python Dictionary', 'Author':'Sammy'}
guests = {'Guest1':'Dino Sammy', 'Guest2':'Xray Sammy'}
new_site = site | guests
print("site: ", site)
print("guests: ", guests)
print("new_site: ", new_site)
Результат:
Outputsite: {'Website': 'DigitalOcean', 'Tutorial': 'How To Add to a Python Dictionary', 'Author': 'Sammy'}
guests: {'Guest1': 'Dino Sammy', 'Guest2': 'Xray Sammy'}
new_site: {'Website': 'DigitalOcean', 'Tutorial': 'How To Add to a Python Dictionary', 'Author': 'Sammy', 'Guest1': 'Dino Sammy', 'Guest2': 'Xray Sammy'}
Два словаря были объединены в новый объект словаря, который содержит пары ключ-значение из обоих словарей.
Если ключ существует в обоих словарях, то принимается значение из второго словаря или правого операнда. В следующем примере кода оба словаря имеют ключ с именем b
:
dict1 = {'a':'one', 'b':'two'}
dict2 = {'b':'letter two', 'c':'letter three'}
dict3 = dict1 | dict2
print{"dict3: ", dict3}
Результат:
Outputdict3: {'a': 'one', 'b': 'letter two', 'c': 'letter three'}
Значение ключа b
было перезаписано значением из правого операнда, dict2
.
Добавление в словарь с помощью оператора Update |=
Вы можете использовать оператор обновления словаря |=
, представленный вертикальной чертой и символами равенства, для обновления словаря на месте с помощью заданного словаря или значений.
Так же, как и оператор слияния |
, если ключ существует в обоих словарях, то оператор обновления |=
берет значение из правого операнда.
В следующем примере показано, как создать два словаря, использовать оператор обновления для добавления второго словаря к первому словарю, а затем распечатать обновленный словарь:
site = {'Website':'DigitalOcean', 'Tutorial':'How To Add to a Python Dictionary', 'Author':'Sammy'}
guests = {'Guest1':'Dino Sammy', 'Guest2':'Xray Sammy'}
site |= guests
print("site: ", site)
Результат:
Outputsite: {'Website': 'DigitalOcean', 'Tutorial': 'How To Add to a Python Dictionary', 'Author': 'Sammy', 'Guest1': 'Dino Sammy', 'Guest2': 'Xray Sammy'}
В предыдущем примере вам не нужно было создавать третий объект словаря, потому что оператор обновления изменяет исходный объект. Вывод показывает, что словарь guests
был добавлен к исходному словарю site
.
Заключение
В этой статье вы использовали разные методы для добавления и обновления словаря Python. Продолжите свое обучение с помощью дополнительных руководств по Python.