例如,我有:如何避免覆蓋字典追加?
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]}
,它最終完成您正在尋找的行爲。
在字典中不能有兩次鍵......您會如何查看它? 'dic ['c']'會返回什麼? – mgilson
也許[multidict](https://pypi.python.org/pypi/multidict)可能是您要查找的數據類型。 –
使詞典中的值全部爲列表。這樣,您可以將多個值與每個字典關鍵字(必須每個都是唯一的)相關聯。 – martineau