web-dev-qa-db-ja.com

Pythonが辞書に新しい項目を追加する

私はPythonで既存の辞書に項目を追加したいです。例えば、これは私の辞書です:

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

以下のような新しいアイテムを追加したいです。

default_data = default_data + {'item3':3}

これを達成する方法?

466
brsbilgic
default_data['item3'] = 3

Pyと同じくらい簡単。

別の可能な解決策:

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

あなたが一度に複数のアイテムを挿入したい場合、これはいいです。

1050
Chris Eberle

それは次のように単純になります。

default_data['item3'] = 3

Chrisの答え が言っているように、複数の項目を追加するために update を使うことができます。例:

default_data.update({'item4': 4, 'item5': 5})

データ構造としての 辞書についての文書、 および組み込み型としての 辞書 を参照してください。

67
GreenMatt

+演算子を辞書に実装する方法を実際に尋ねているのかもしれませんが、次のように動作するようです。

>>> 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] = valuedict.update()を使うよりもオーバーヘッドが大きいので、とにかく新しい辞書を作るつもりがない限り、私はこの解決策を使うことをお勧めします。

23
Andrew Clark