python - 将列表拆分为单独但重叠的 block

标签 python list

假设我有一个列表 A

A = [1,2,3,4,5,6,7,8,9,10]

我想按以下顺序使用上面的列表创建一个新列表(比如 B)。

B = [[1,2,3], [3,4,5], [5,6,7], [7,8,9], [9,10,]]

即前 3 个数字为 A[0,1,2],后 3 个数字为 A[2,3,4] 等等。

我相信 numpy 中有一个函数可以进行这种操作。

最佳答案

只需使用 Python 的内置列表理解和列表切片来执行此操作:

>>> A = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
>>> size = 3
>>> step = 2
>>> A = [A[i : i + size] for i in range(0, len(A), step)]

这给了你想要的东西:

>>> A
[[1, 2, 3], [3, 4, 5], [5, 6, 7], [7, 8, 9], [9, 10]]

但是您必须编写几行代码以确保您的代码不会因前所未有的大小/步长值而中断。

关于python - 将列表拆分为单独但重叠的 block ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38163366/

相关文章:

python - Paramiko/ssh/tail + grep 挂起

带有生成器的 Python 多处理

python - `if file.find(' 频率 -') != -1` 是什么意思?

list - Prolog - 第一个列表是第二个列表的子列表,同时保持顺序?

c# - 将数组列表的值发送到属于不同类的另一个函数

Java arraylist 复制 - 克隆?

python - 如何获取列表的最后一个元素?

python - 如何在 python 中模拟嵌套/多层返回对象

python - NumPy 是否有 unravel_index() 的反函数?

html - 在悬停时调整元素的大小以不移动其他元素