我有一个key->值列表,我想添加到字典中。 有些键会出现不同的值,因此我必须创建一个每个键包含多个值的字典。 找不到办法做到这一点。
答案 0 :(得分:3)
您可以在setdefault
dict
功能
myDict, items = dict(), [[1, 2], [1, 3], [2, 4]]
for key, value in items:
myDict.setdefault(key, []).append(value)
print myDict
<强>输出强>
{1: [2, 3], 2: [4]}
或者您可以使用collections.defaultdict
from collections import defaultdict
myDict, items = defaultdict(list), [[1, 2], [1, 3], [2, 4]]
for key, value in items:
myDict[key].append(value)
print myDict
<强>输出强>
defaultdict(<type 'list'>, {1: [2, 3], 2: [4]})
答案 1 :(得分:0)
对于同一个键,您不会多次指示您具有相同的值。
在任何情况下,如果要将多个值与一个值相关联以防止重复,则要使用set()
:
org_list = [(1,2), (1,3), (2,1), (2,2), (1,3)]
result = {}
for k, v in org_list:
result.setdeault(k, set()).add(v)