Поиск по сайту:

Как добавить в словарь в 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)

Результат:

Output
original 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)

Результат:

Output
original 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)

Результат:

Output
original 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)

Результат:

Output
site: {'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}

Результат:

Output
dict3: {'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)

Результат:

Output
site: {'Website': 'DigitalOcean', 'Tutorial': 'How To Add to a Python Dictionary', 'Author': 'Sammy', 'Guest1': 'Dino Sammy', 'Guest2': 'Xray Sammy'}

В предыдущем примере вам не нужно было создавать третий объект словаря, потому что оператор обновления изменяет исходный объект. Вывод показывает, что словарь guests был добавлен к исходному словарю site.

Заключение

В этой статье вы использовали разные методы для добавления и обновления словаря Python. Продолжите свое обучение с помощью дополнительных руководств по Python.