Введение
Словарь – это встроенный тип данных в Python. Словарь представляет собой последовательность пар ключ-значение. Словари являются изменяемыми объектами, однако ключи словаря неизменяемы и должны быть уникальными в каждом словаре. Нет встроенного метода добавления, но есть несколько способов добавления и обновления словаря. В этой статье вы будете использовать оператор присваивания Python, метод update()
и операторы слияния и обновления словарей для добавления и обновления словарей Python.
Развертывайте ваши приложения Python из GitHub с использованием Платформы приложений DigitalOcean. Позвольте DigitalOcean заботиться о масштабировании вашего приложения.
Четыре метода добавления в словарь Python
- Использование оператора присваивания
- Использование метода update
- Использование оператора объединения
- Использование оператора обновления
Добавление в словарь 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)
Вывод:
Outputoriginal 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)
Вывод:
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
не изменилось при условном обновлении словаря.
Добавление в словарь 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)
Результат:
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
. Обратите внимание, что при обновлении словаря, если в нем есть существующий ключ, старое значение перезаписывается новым значением.
Добавление в словарь 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)
Вывод:
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
.
Добавление в словарь 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)
Вывод:
Outputsite: {'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