Как добавить в словарь в Python

Введение

Словарь – это встроенный тип данных в Python. Словарь представляет собой последовательность пар ключ-значение. Словари являются изменяемыми объектами, однако ключи словаря неизменяемы и должны быть уникальными в каждом словаре. Нет встроенного метода добавления, но есть несколько способов добавления и обновления словаря. В этой статье вы будете использовать оператор присваивания Python, метод update() и операторы слияния и обновления словарей для добавления и обновления словарей Python.

Развертывайте ваши приложения Python из GitHub с использованием Платформы приложений DigitalOcean. Позвольте DigitalOcean заботиться о масштабировании вашего приложения.

Четыре метода добавления в словарь Python

  1. Использование оператора присваивания
  2. Использование метода update
  3. Использование оператора объединения
  4. Использование оператора обновления

Добавление в словарь Python с использованием оператора присваивания =

Вы можете использовать оператор присваивания =, чтобы добавить новый ключ в словарь:

dict[key] = value

Если ключ уже существует в словаре, то оператор присваивания обновляет или перезаписывает значение.

В следующем примере показано, как создать новый словарь, а затем использовать оператор присваивания =, чтобы обновить значение и добавить пары ключ-значение:

dict_example = {'a': 1, 'b': 2}

print("original dictionary: ", dict_example)

dict_example['a'] = 100  # существующий ключ, перезаписать
dict_example['c'] = 3  # новый ключ, добавить
dict_example['d'] = 4  # новый ключ, добавить 

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 добавляются новые пары ключ-значение.

Добавление в словарь Python без перезаписи значений

Использование оператора присваивания = перезаписывает значения существующих ключей новыми значениями. Если вы знаете, что в вашей программе могут быть дублирующиеся ключи, но вы не хотите перезаписывать исходные значения, то вы можете условно добавлять значения, используя оператор if.

Продолжая пример из предыдущего раздела, вы можете использовать операторы if, чтобы добавлять в словарь только новые пары ключ-значение:

dict_example = {'a': 1, 'b': 2}

print("original dictionary: ", dict_example)

dict_example['a'] = 100  # существующий ключ, перезапись
dict_example['c'] = 3  # новый ключ, добавление
dict_example['d'] = 4  # новый ключ, добавление

print("updated dictionary: ", dict_example)

# добавление следующих операторов if

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 не изменилось при условном обновлении словаря.

Добавление в словарь Python с помощью метода update()

Вы можете добавить словарь или итерируемый объект пар ключ-значение в словарь с использованием метода update(). Метод update() перезаписывает значения существующих ключей новыми значениями.

В следующем примере показано, как создать новый словарь, использовать метод update() для добавления новой пары ключ-значение и нового словаря, а затем вывести каждый результат:

site = {'Website':'DigitalOcean', 'Tutorial':'How To Add to a Python Dictionary'}
print("original dictionary: ", site)

# обновление словаря с парой ключ-значение для автора
site.update({'Author':'Sammy Shark'})
print("updated with Author: ", site)

# создание нового словаря
guests = {'Guest1':'Dino Sammy', 'Guest2':'Xray Sammy'}

# обновление исходного словаря новым словарем
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. Обратите внимание, что при обновлении словаря, если в нем есть существующий ключ, старое значение перезаписывается новым значением.

Добавление в словарь Python с использованием оператора слияния |

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

Приведенный пример демонстрирует, как создать два словаря и использовать оператор слияния для создания нового словаря, содержащего пары ключ-значение из обоих:

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.

Добавление в словарь Python с использованием оператора обновления |=

Вы можете использовать оператор обновления словаря |=, представленный символами вертикальной черты и знака равенства, чтобы обновить словарь на месте данными словаря или значениями.

Как и оператор слияния |, если ключ существует в обоих словарях, то оператор обновления |= берет значение из правого операнда.

Приведенный ниже пример демонстрирует, как создать два словаря, использовать оператор обновления для добавления второго словаря к первому, а затем вывести обновленный словарь:

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.

Source:
https://www.digitalocean.com/community/tutorials/python-add-to-dictionary