list - 将列表切片为子列表列表

标签 list python

对于任意长度的子列表,将列表切片为切片的子列表部分列表的最简单且合理有效的方法是什么?

例如,如果我们的源列表是:

input = [1, 2, 3, 4, 5, 6, 7, 8, 9, ... ]

我们的子列表长度是 3 然后我们寻找:

output = [ [1, 2, 3], [4, 5, 6], [7, 8, 9], ... ]

同样,如果我们的子列表长度为 4,那么我们会寻找:

output = [ [1, 2, 3, 4], [5, 6, 7, 8], ... ]

最佳答案

[input[i:i+n] for i in range(0, len(input), n)]        # Use xrange in py2k

其中 n 是 block 的长度。

由于您没有定义当 input 中的元素数量不能被 n 整除时新列表的最后一个元素会发生什么,我假设这并不重要:例如,如果 n 等于 7,那么最后一个元素等于 2。

关于list - 将列表切片为子列表列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2231663/

相关文章:

python - 如何查找字符串中某个字符所有出现的索引?

python - 打印输出()类型错误 bool

python - 如何从图像中随机裁剪(特定区域和特定概率)矩形

python - Hadoop 流 : reporting error

python - Django 调试工具栏 : how do I profile a file download?

c - 结构体和指针列表

java - 二维数组子采样 - java

python - 返回一个唯一的单词字典,其键是数字,其值是等长单词的列表

python - 将第一个数组的每个元素与第二个数组的所有元素相加

list - 序言联合失败