在python中压缩带有2d列表的列表

时间:2017-04-27 23:28:17

标签: python

我有一个列表和一个列表列表。我想压缩它们并在元组上运行循环。

例如:

list1 = [1, 2, 3, 4]
list2 = [[11, 12], [21, 22], [31, 32], [41, 42]]

我希望将以下内容作为输出并在每个元组中运行循环。

output = [(1, 11), (1, 12), (2, 21), (2, 22), (3, 31), ... ...]

我尝试了以下操作,但它没有用。

for candidate, reference in zip(list1, zip(*list2)):
    print(candidate, reference)

1 个答案:

答案 0 :(得分:1)

这是一个单循环的解决方案,但对我来说似乎是一种微观优化......

>>> list1 = [1, 2, 3, 4]
>>> list2 = [[11, 12], [21, 22], [31, 32], [41, 42]]
>>> output = []
>>> for x, (a,b)  in zip(list1, list2):
...     output.append((x,a))
...     output.append((x,b))
...
>>> output
[(1, 11), (1, 12), (2, 21), (2, 22), (3, 31), (3, 32), (4, 41), (4, 42)]
>>>