将列表的列表转换为列表的字典

Turning a list of lists into a dictionary of lists

您好,我在尝试实现的代码中遇到了一个小问题。 我希望将列表列表转换为字典,其中键指的是原始列表列表中的列表位置,值是所述列表中的项目列表(来自原始列表列表)。我还希望删除原始列表列表中的所有 Nones。例如:

[[(1, None), (2, None)], [(0, None), (2, None)], [(1, None), (0, None)]]

我希望它变成:

{0: [1, 2], 1: [0, 2], 2: [1, 0]}

看起来像基本的字典和列表理解

raw = [[(1, None), (2, None)], [(0, None), (2, None)], [(1, None), (0, None)]]
print {i: [el[0] for el in l] for i, l in enumerate(raw)}

打印

{0: [1, 2], 1: [0, 2], 2: [1, 0]}

只是为了好玩,如果你想使用 lambdamap:

dict(map(lambda i: (li.index(i), [i[0][0], i[1][0]]), li))

另一种字典理解,它使用 index 方法而不是 enumerate:

{li.index(i):[el[0] for el in i] for i in li}