将列表转换为包含Python中重复键值列表的字典

时间:2020-09-18 08:32:44

标签: python dictionary

我想将列表转换为具有重复键的字典,以便具有所有值,而我希望在字典中包含值列表。

输入为列表:

l = ['a', '1', 'b', '2', 'a', '3']

输出应如下所示:

d = {'a': ['1','3'], 'b': '2' }

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']})
相关问题