如何将列表列表转换为键为整数且值是该整数所属子列表的索引的字典?

时间:2019-10-09 21:00:19

标签: python list dictionary

我有一个列表列表,其中每个整数0..N恰好属于外部列表中的一个列表。例如,如果N = 6,我有类似的东西

L=[[0,4,5],[2,3],[1,6]]

我希望字典如下所示:

{0:0, 1:2, 2:1, 3:1, 4:0, 5:0}

例如,键:值对2:1表示2属于L [1]。

有一种简单的方法吗?

2 个答案:

答案 0 :(得分:1)

您可以使用enumerate +一个dictionary comprehension

L = [[0, 4, 5], [2, 3], [1, 6]]
result = {value: i for i, values in enumerate(L) for value in values}
print(result)

输出

{0: 0, 4: 0, 5: 0, 2: 1, 3: 1, 1: 2, 6: 2}

等同于:

result = {}
for i, values in enumerate(L):
    for value in values:
        result[value] = i

我认为这里的关键是使用枚举来访问L的索引和元素。

答案 1 :(得分:1)

L=[[0,4,5],[2,3],[1,6]]

result = dict()
for i,l  in enumerate(L):
  for item in l:
    result[item]=i

print(result)

这将产生如下输出:

{0: 0, 1: 2, 2: 1, 3: 1, 4: 0, 5: 0, 6: 2}