Добавить новый элемент в словарь в Python
Описание проблемы:
Я пытаюсь добавить новый элемент в существующий словарь в Python. У меня есть следующий словарь:
default_data = {
'item1': 1,
'item2': 2,
}
Я хочу добавить новый элемент, чтобы он выглядел так:
default_data = default_data + {'item3': 3}
Однако, когда я пытаюсь это сделать, это приводит к ошибке. Как правильно добавить новый ключ в словарь в Python? Что я делаю не так и как это можно исправить?
2 ответ(ов)
Чтобы добавить элемент с ключом 'item3'
и значением 3
в словарь default_data
, можно использовать следующий простой код:
default_data['item3'] = 3
Легко, как пирог.
Еще один возможный способ:
default_data.update({'item3': 3})
Этот метод удобен, если вы хотите добавить несколько элементов сразу.
Возможно, вы на самом деле спрашиваете, как реализовать оператор +
для словарей. Вот решение, которое, похоже, работает:
>>> 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()
, поэтому я бы не рекомендовал использовать это решение, если вы не собираетесь создавать новый словарь в любом случае.
Преобразование списка словарей в DataFrame pandas
Почему использовать dict.get(key) вместо dict[key]?
Получить ключ по значению в словаре
Как преобразовать вложенный словарь Python в объект?
Ошибка: "'dict' объект не имеет метода 'iteritems'"