Введение
Словарь — это встроенный тип данных в Python. Он представляет собой последовательность пар «ключ-значение», где каждый ключ уникален и соответствует значению. Словари являются изменяемыми объектами, то есть вы можете изменять их содержимое, не меняя их идентичность. Однако ключи словаря неизменяемы и должны быть уникальными в каждом словаре. Это делает словари очень эффективными для поиска, вставки и удаления.
Словари широко используются в Python для различных целей, таких как подсчет вхождений, группировка данных и хранение настроек. Несмотря на их универсальность, в словарях нет встроенного метода добавления. Вместо этого существует несколько способов добавления и обновления словаря, каждый из которых имеет свои преимущества и области применения.
В этой статье вы узнаете о различных способах добавления и обновления словарей в Python. Вы научитесь использовать оператор присваивания Python, метод `update()`, а также операторы слияния и обновления словарей. К концу этого урока вы получите прочное понимание того, как эффективно управлять словарями и манипулировать ими в ваших программах на Python.
Добавить в словарь 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 добавляются новые пары ключ-значение.
Добавление значений в словарь Python без перезаписи.
Использование оператора присваивания `=` перезаписывает значения существующих ключей новыми значениями. Если вы знаете, что в вашем приложении могут быть повторяющиеся ключи, но вы не хотите перезаписывать исходные значения, вы можете условно добавлять значения с помощью оператора `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 не изменяется при условном обновлении словаря.
Добавление данных в словарь Python с помощью метода 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'}В результате выполнения операции видно, что первое обновление добавляет новую пару ключ-значение, а второе обновление добавляет пары ключ-значение из словаря гостевых записей в словарь записей сайта. Обратите внимание, что если обновление словаря содержит существующий ключ, старое значение перезаписывается новым обновлением.
Добавление в словарь 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'}
В предыдущем примере вам не потребовалось создавать третий объект словаря, поскольку оператор обновления изменяет исходный объект. В результате видно, что словарь гостевых записей добавляется к основному словарю сайта.
Результат
В этой статье вы использовали различные методы для добавления и обновления словарей Python.










Один комментарий
شكراً لك