如何将列表列表变成点对?
How to turn a list of lists into pairs of points?
例如,如果我有:
a = [[[1, 1, 10], [148, 191, 203]],
[[133, 100], [19, 34]],
[[230, 200], [44, 68]]]
我想把“a”变成:
[(1,148), (1,191), (10,203), (133,19), (100,34), (230,44), (200,68)]
基本上在每个内部列表中,我都有一个 x 值列表和一个 y 值列表,我想将它们配对在一起。所以 a[0][0][0]
和 a[0][1][0]
是一对。有没有一种简单的方法可以做到这一点?谢谢!
您可以使用 zip
将每对列表组合成一个元组列表:
a = [[[1, 1, 10], [148, 191, 203]],
[[133, 100], [19, 34]],
[[230, 200], [44, 68]]]
print([z for x, y in a for z in zip(x, y)])
输出:
[(1, 148), (1, 191), (10, 203), (133, 19), (100, 34), (230, 44), (200, 68)]
例如,如果我有:
a = [[[1, 1, 10], [148, 191, 203]],
[[133, 100], [19, 34]],
[[230, 200], [44, 68]]]
我想把“a”变成:
[(1,148), (1,191), (10,203), (133,19), (100,34), (230,44), (200,68)]
基本上在每个内部列表中,我都有一个 x 值列表和一个 y 值列表,我想将它们配对在一起。所以 a[0][0][0]
和 a[0][1][0]
是一对。有没有一种简单的方法可以做到这一点?谢谢!
您可以使用 zip
将每对列表组合成一个元组列表:
a = [[[1, 1, 10], [148, 191, 203]],
[[133, 100], [19, 34]],
[[230, 200], [44, 68]]]
print([z for x, y in a for z in zip(x, y)])
输出:
[(1, 148), (1, 191), (10, 203), (133, 19), (100, 34), (230, 44), (200, 68)]