将列表的列表转换为列表的字典
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]}
只是为了好玩,如果你想使用 lambda
和 map
:
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}
您好,我在尝试实现的代码中遇到了一个小问题。 我希望将列表列表转换为字典,其中键指的是原始列表列表中的列表位置,值是所述列表中的项目列表(来自原始列表列表)。我还希望删除原始列表列表中的所有 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]}
只是为了好玩,如果你想使用 lambda
和 map
:
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}