6

Добавить новый элемент в словарь в Python

8

Описание проблемы:

Я пытаюсь добавить новый элемент в существующий словарь в Python. У меня есть следующий словарь:

default_data = {
    'item1': 1,
    'item2': 2,
}

Я хочу добавить новый элемент, чтобы он выглядел так:

default_data = default_data + {'item3': 3}

Однако, когда я пытаюсь это сделать, это приводит к ошибке. Как правильно добавить новый ключ в словарь в Python? Что я делаю не так и как это можно исправить?

2 ответ(ов)

13

Чтобы добавить элемент с ключом 'item3' и значением 3 в словарь default_data, можно использовать следующий простой код:

default_data['item3'] = 3

Легко, как пирог.

Еще один возможный способ:

default_data.update({'item3': 3})

Этот метод удобен, если вы хотите добавить несколько элементов сразу.

0

Возможно, вы на самом деле спрашиваете, как реализовать оператор + для словарей. Вот решение, которое, похоже, работает:

>>> class Dict(dict):
...     def __add__(self, other):
...         copy = self.copy()
...         copy.update(other)
...         return copy
...     def __radd__(self, other):
...         copy = other.copy()
...         copy.update(self)
...         return copy
...
>>> default_data = Dict({'item1': 1, 'item2': 2})
>>> default_data + {'item3': 3}
{'item2': 2, 'item3': 3, 'item1': 1}
>>> {'test1': 1} + Dict(test2=2)
{'test1': 1, 'test2': 2}

Обратите внимание, что этот метод имеет больше накладных расходов по сравнению с использованием dict[key] = value или dict.update(), поэтому я бы не рекомендовал использовать это решение, если вы не собираетесь создавать новый словарь в любом случае.

Чтобы ответить на вопрос, пожалуйста, войдите или зарегистрируйтесь