对于任意长度的子列表,将列表切片为切片的子列表部分列表的最简单且合理有效的方法是什么?
例如,如果我们的源列表是:
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/