我想将列表转换为具有重复键的字典,以便具有所有值,而我希望在字典中包含值列表。
输入为列表:
l = ['a', '1', 'b', '2', 'a', '3']
输出应如下所示:
d = {'a': ['1','3'], 'b': '2' }
答案 0 :(得分:0)
尝试一下
res = {}
for i in range(0, len(l), 2):
res.setdefault(l[i], []).append(l[i+1])
print(res)
输出:
{'a': ['1', '3'], 'b': ['2']}
您也可以使用zip()
res = {}
for k, v in zip(l[0::2], l[1::2]):
res.setdefault(k, []).append(v)
答案 1 :(得分:0)
from collections import defaultdict
d = defaultdict(list)
l = ['a', '1', 'b', '2', 'a', '3']
for idx,x in enumerate(l):
if idx % 2 != 0:
d[l[idx-1]].append(x)
print(d)
输出
defaultdict(<class 'list'>, {'a': ['1', '3'], 'b': ['2']})