Словарь в 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 и работа с ними Примеры