如何将一个列表中的元素映射到子列表中的所有元素以形成元组(坐标)列表



我试图将每个element[x]从列表:行映射到sub-list[x]的所有元素从另一个列表:cols和结果应该是元组列表。这两个列表,行和颜色有相同的长度,行中的每个元素将对应于列表颜色中的子列表(不同长度)。

输出应该是一个元组列表,其中每个元组都有映射/压缩的元素:(row[0], cols[0][0]), (row[0], cols[0][1]), (row[1], cols[1][0])等…

输入:

rows =  [502, 1064, 1500]
cols =  [[555, 905], [155, 475], [195, 595, 945]]

所需输出:

mapped = [(502, 555), (502, 905), (1064, 155), (1064, 475), (1500, 195), (1500, 959), (1500, 945)]

谢谢!

Code: [List Comprehension]

rows = [502, 1064, 1500]
cols = [[555, 905], [155, 475], [195, 595, 945]]
mapped = [(row, col) for row, nested_col in zip(rows, cols) for col in nested_col]
print(mapped)

输出:

[(502, 555), (502, 905), (1064, 155), (1064, 475), (1500, 195), (1500, 595), (1500, 945)]

尝试:

rows = [502, 1064, 1500]
cols = [[555, 905], [155, 475], [195, 595, 945]]
out = []
for r, c in zip(rows, cols):
for v in c:
out.append((r, v))
print(out)

打印:

[(502, 555), (502, 905), (1064, 155), (1064, 475), (1500, 195), (1500, 595), (1500, 945)]

最新更新