Словарь в Python — это структура данных, которая хранит данные в виде пар ключ-значение. Эти пары также называются элементами словаря. Поскольку словарь — изменяемая структура данных, его элементы можно добавлять, удалять и изменять. В этой статье мы рассмотрим, как добавить элемент в словарь разными способами.
Как добавить элемент в словарь при помощи квадратных скобок
Допустим, у нас есть словарь myDict и пара ключ-значение myKey и myValue. Мы можем добавить эту пару ключ-значение в наш словарь, используя синтаксис myDict [myKey] = myValue. Пример:
myDict = {"name": "PythonTurbo", "acronym": "PT"}
print("Original Dictionary is:", myDict)
myDict["niche"] = "programming"
print("Modified Dictionary is:", myDict)
Результат:
Original Dictionary is: {'name': 'PythonTurbo', 'acronym': 'PT'}
Modified Dictionary is: {'name': 'PythonTurbo', 'acronym': 'PT', 'niche': 'programming'}
В приведенном выше примере мы добавили новый ключ «niche» со связанным с ним значением «programming».
Помните, что если ключ элемента, который добавляется в словарь, уже есть в словаре, то значение для ключа будет перезаписано новым значением. Это можно увидеть в следующем примере.
myDict = {'name': 'PythonTurbo', 'acronym': 'PT', 'niche': 'programming'}
print("Original Dictionary is:", myDict)
myDict["niche"] = "python programming"
print("Modified Dictionary is:", myDict)
Результат:
Original Dictionary is: {'name': 'PythonTurbo', 'acronym': 'PT', 'niche': 'programming'}
Modified Dictionary is: {'name': 'PythonTurbo', 'acronym': 'PT', 'niche': 'python programming'}
В приведенном выше примере ключ «niche» со значением «programming» уже есть в словаре. Когда мы пытаемся добавить пару ключ-значение с «niche» в качестве ключа и «python programming» в качестве связанного значения, значение, связанное с «niche», обновляется до нового значения.
Как добавить элемент в словарь с помощью метода update()
Мы можем добавить элемент в словарь с помощью метода update(). Этот метод, вызываемый для словаря, принимает на вход другой словарь и добавляет его элементы в тот словарь, для которого вызван. На вход может подаваться не только словарь, но и другой итерируемый объект, содержащий пары ключ-значение.
Для примера давайте передадим методу update() словарь, содержащий один элемент.
myDict = {"name": "PythonTurbo", "acronym": "PT"}
print("Original Dictionary is:", myDict)
myDict.update({'niche': 'programming'})
print("Modified Dictionary is:", myDict)
Результат:
Original Dictionary is: {'name': 'PythonTurbo', 'acronym': 'PT'}
Modified Dictionary is: {'name': 'PythonTurbo', 'acronym': 'PT', 'niche': 'programming'}
Также на вход метода update() можно передать список кортежей, содержащих пары ключ-значение, и добавить эти элементы в словарь.
myDict = {"name": "PythonTurbo", "acronym": "PT"}
print("Original Dictionary is:", myDict)
items = [("niche", "programming")]
myDict.update(items)
print("Modified Dictionary is:", myDict)
Результат:
Original Dictionary is: {'name': 'PythonTurbo', 'acronym': 'PT'}
Modified Dictionary is: {'name': 'PythonTurbo', 'acronym': 'PT', 'niche': 'programming'}
Еще можно передать в метод update() пары ключ-значение в качестве именованных параметров. Тогда имена параметров будут использоваться как ключи словаря, а значения параметров — как значения словаря.
myDict = {"name": "PythonTurbo", "acronym": "PT"}
print("Original Dictionary is:", myDict)
myDict.update(niche="programming")
print("Modified Dictionary is:", myDict)
Результат:
Original Dictionary is: {'name': 'PythonTurbo', 'acronym': 'PT'}
Modified Dictionary is: {'name': 'PythonTurbo', 'acronym': 'PT', 'niche': 'programming'}
Как добавить элемент в словарь с помощью метода __setitem()__
Мы также можем добавить элемент в словарь с помощью метода __setitem__(). Метод __setitem__(), вызываемый для словаря, принимает новый ключ и значение в качестве первого и второго параметров соответственно и добавляет пару ключ-значение в словарь.
myDict = {"name": "PythonTurbo", "acronym": "PT"}
print("Original Dictionary is:", myDict)
myDict.__setitem__('niche', 'programming')
print("Modified Dictionary is:", myDict)
Результат:
Original Dictionary is: {'name': 'PythonTurbo', 'acronym': 'PT'}
Modified Dictionary is: {'name': 'PythonTurbo', 'acronym': 'PT', 'niche': 'programming'}
Если ключ уже существует в словаре, то связанное с ним значение перезаписывается новым значением. Это можно увидеть в следующем примере.
myDict = {'name': 'PythonTurbo', 'acronym': 'PT', 'niche': 'programming'}
print("Original Dictionary is:", myDict)
myDict.__setitem__('niche', 'python programming')
print("Modified Dictionary is:", myDict)
Результат:
Original Dictionary is: {'name': 'PythonTurbo', 'acronym': 'PT', 'niche': 'programming'}
Modified Dictionary is: {'name': 'PythonTurbo', 'acronym': 'PT', 'niche': 'python programming'}
Добавление элемента в словарь при помощи оператора **
Двойной астериск (**) используется в Python для передачи именованных параметров в функцию. Но также с его помощью можно добавить пару ключ-значение в словарь.
Когда мы применяем ** к словарю, этот оператор десериализует словарь и конвертирует его в коллекцию пар ключ-значение. Эту коллекцию затем можно снова преобразовать в словарь.
Чтобы добавить элемент в словарь, для начала нужно создать другой словарь, содержащий только этот элемент. Затем при помощи оператора ** мы производим слияние двух словарей.
myDict = {'name': 'PythonTurbo', 'acronym': 'PT'}
print("Original Dictionary is:", myDict)
newDict = {'niche': 'programming'}
myDict = {**myDict, **newDict}
print("Modified Dictionary is:", myDict)
Результат:
Original Dictionary is: {'name': 'PythonTurbo', 'acronym': 'PT'}
Modified Dictionary is: {'name': 'PythonTurbo', 'acronym': 'PT', 'niche': 'programming'}
Заключение
В этой статье мы рассмотрели различные способы добавления элемента в словарь в Python: при помощи квадратных скобок, методов update() и __setitem()__, а также при помощи оператора **.
Перевод статьи Aditya Raj «Add an item to a dictionary in Python».

Пингбэк: - Словари в Python и работа с ними Примеры