は例えば、私が持っている:辞書追加の上書きを避けるにはどうすればよいですか?
dic={'a': 1, 'b': 2, 'c': 3}
今、私は別の'c':4
が辞書に追加したいと思います。既存の'c':3
を上書きします。
は、どのように私のようなdic
を得ることができます:
dic={'a': 1, 'b': 2, 'c': 3, 'c':4}
は例えば、私が持っている:辞書追加の上書きを避けるにはどうすればよいですか?
dic={'a': 1, 'b': 2, 'c': 3}
今、私は別の'c':4
が辞書に追加したいと思います。既存の'c':3
を上書きします。
は、どのように私のようなdic
を得ることができます:
dic={'a': 1, 'b': 2, 'c': 3, 'c':4}
辞書キーは、一意にする必要があります。しかし、複数の値を格納できるように値としてリストを持つことができます。これは、以下に示すようにcollections.defaultdict
を使用して実行できます。 (例はIPythonセッションからコピーされました)
In [1]: from collections import defaultdict
In [2]: d = defaultdict(list)
In [3]: d['a'].append(1)
In [4]: d['b'].append(2)
In [5]: d['c'].append(3)
In [6]: d['c'].append(4)
In [7]: d
Out[7]: defaultdict(list, {'a': [1], 'b': [2], 'c': [3, 4]})
多くの感謝!これは私が必要とするものです – user815408
あなたは、単一の辞書内で重複したキーを持つことはできません - あなたが何かを検索しようとしたとき、あなたはどのような行動を期待しますか?ただし、複数のオブジェクトを格納するために、キーにリストを関連付けることができます。この辞書の構造のわずかな変更により、{'c' : [3, 4]}
が可能になり、最終的にはあなたが探している振る舞いを実現します。
キーを辞書に2回置くことはできません。どのように見上げますか? 'dic ['c']'は何を返すでしょうか? – mgilson
おそらく[multidict](https://pypi.python.org/pypi/multidict)が探しているデータ型かもしれません。 –
辞書の値をすべてリストにします。そうすれば、複数の値を各辞書キーに関連付けることができます(それぞれが一意でなければなりません)。 – martineau