首页 > 解决方案 > 如何按块交错两个列表

问题描述

我想以特定方式组合两个列表。我希望每 4 个值更改我从中获取值的列表。

这是一个示例,但我正在处理的数据集要大得多:

List1 = [1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 1.7, 1.8]
List2 = [2.1, 2.2, 2.3, 2.4, 2.5, 2.6, 2.7, 2.8]

#Expected merged list
[1.1, 1.2, 1.3, 1.4, 2.1, 2.2, 2.3, 2.4, 1.5, 1.6, 1.7, 1.8, 2.5, 2.6, 2.7, 2.8]

在这里,我从 中取出前 4 个List1,然后从 中取出接下来的 4 个List2,然后返回以此类推List1

这类似于Intertwining two lists问题,但不是:

c = [a[0], b[0], a[1], b[1], ..., a[n], b[n]]

我想

c = [a[0], a[1], a[2], a[3], b[0], b[1], b[2], b[3], ..., a[n-3], a[n-2], a[n-1], a[n], b[n-3], b[n-2], b[n-1], b[n]]

标签: pythonpython-3.xlist

解决方案


你可以试试这个。您可以使用extend.

>>> l=[]
>>> for i in range(0,len(List1),4):
        l.extend(List1[i:i+4])
        l.extend(List2[i:i+4])
>>> l
[1.1, 1.1, 1.1, 1.1, 2.1, 2.1, 2.1, 2.1, 1.2, 1.2, 1.2, 1.2, 2.2, 2.2, 2.2, 2.2]
>>> 

推荐阅读