我可以将两个列表放入字典中,如下所示 -
list1 = [1,2,3,4]
list2 = ['a','b','c','d']
dct = dict(zip(list1, list2))
print(dct)
Run Code Online (Sandbox Code Playgroud)
结果,
{1: 'a', 2: 'b', 3: 'c', 4: 'd'}
Run Code Online (Sandbox Code Playgroud)
但是,对于以下重复项,
list3 = [1,2,3,3,4,4]
list4 = ['a','b','c','d','e','f']
dct_ = dict(zip(list1, list2))
print(dct)
Run Code Online (Sandbox Code Playgroud)
我明白了,
{1: 'a', 2: 'b', 3: 'c', 4: 'd'}
Run Code Online (Sandbox Code Playgroud)
我应该怎么做才能将列表中的重复项视为结果字典中的单个键?
我期待的结果如下 -
{1: 'a', 2: 'b', 3: 'c', 3: 'd', 4: 'e', 4: 'f'}
Run Code Online (Sandbox Code Playgroud)
相反,您可以创建包含值作为列表的字典:
from collections import defaultdict
d = defaultdict(list)
for k,v in zip(list3, list4):
d[k].append(v)
defaultdict(list, {1: ['a'], 2: ['b'], 3: ['c', 'd'], 4: ['e', 'f']})
Run Code Online (Sandbox Code Playgroud)