将列表列表转换为dict,列出重复值

时间:2017-11-07 20:03:06

标签: python list dictionary

这是我的代码:

l = [['A',11],['A',12],['B',13],['B',14],['C',15],['C',16],]
d = {}

>>> for a in l:
...     if a[0] in d:
...         s = d[a[0]]
...         s.append(a[1])
...         d[a[0]] = s
...     else:
...         d[a[0]] = [a[1]]
... 

我按预期得到了我的字典。

print (d)
{'A': [11, 12], 'B': [13, 14], 'C': [15, 16]}

有更简单的方法吗?关键是如果密钥重复,则在列表列表中创建第二个元素的列表。

1 个答案:

答案 0 :(得分:4)

使用defaultdict

from collections import defaultdict

d = defaultdict(list)
for k, v in l:
   d[k].append(v)