l1 = [1, 2, 3, 4]
l2 = [(10, 20), (30, 40), (50, 60), (70, 80)]
>>> print(list(zip(l1, l2)))
[(1, (10, 20)), (2, (30, 40)), (3, (50, 60)), (4, (70, 80))]
但是,我希望它只是一个包含四个元组的列表,如下所示:
[(1, 10, 20), (2, 30, 40), (3, 50, 60), (4, 70, 80)]
我也试过:
>>> print(list(zip(l1, *l2)))
[(1, 10, 30, 50, 70), (2, 20, 40, 60, 80)]
所以我的问题是:
如何压缩包含元组列表或列表列表的列表?
最佳答案
解决这个问题的更通用的方法是考虑在需要时将两个列表按比例放大/缩小到相同的维度
>>> [(a, ) + b for a, b in zip(l1, l2)]
[(1, 10, 20), (2, 30, 40), (3, 50, 60), (4, 70, 80)]
在您的示例中,与第一个列表相比,第二个列表有一个额外的维度
- 将第一个列表转换为与第二个列表匹配的更高维度
- 减少第二个列表的维度
在这种特殊情况下,第一种方法更容易,因此是显而易见的选择
关于python - 将列表与元组列表组合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30542214/