【发布时间】:2018-07-20 04:23:57
【问题描述】:
我有一个二维列表。
l = [[100, 1], [43, 2], [201, 1], [5, 7], ...]
我想将列表转换为第二个元素作为键的字典。每个键的值应该是所有第一个元素的列表,其中键作为第二个元素。 此示例列表的字典应如下所示:
{
1: [100, 201],
2: [43],
7: [5],
...
}
对于这种转换,我有两种解决方案。其中哪一个更有效,为什么?另外:还有其他更有效的解决方案吗?
解决方案1:
d = {}
for elem in l:
if elem[1] in d:
d[elem[1]].append(elem[0])
else:
d[elem[1]] = [elem[0]]
解决方案2:
d = {}
for elem in l:
d[elem[1]] = []
for elem in l:
d[elem[1]].append(elem[0])
【问题讨论】:
标签: python python-3.x performance list dictionary