2024-06-28 19:48:51 发布
网友
我有一个数组,我正试图把它分成不同大小的块
在下面的示例中,loopN是卡盘尺寸。我已经尝试了各种方法来迭代loopN,但是无法理解list是我试图分割成块的数组
loopN
list
loopN = [2,3,1] list = [1,2,3,4,5,6] for i in range(0, len(list), loopN): chunks.append(list[i:i+loopN])
我想要的输出是[[1,2],[3,4,5],[6]]
[[1,2],[3,4,5],[6]]
如何将阵列拆分为不同大小的卡盘
您可以使用^{}根据loopN中的元素获取l的切片:
l
from itertools import islice loopN = [2,3,1] l = iter([1,2,3,4,5,6]) [list(islice(l, i)) for i in loopN] # [[1, 2], [3, 4, 5], [6]]
如果您想坚持使用列表方法,遵循您的方法,@barmar已经发现了一些错误。请注意,切片i:i+loopN实际上没有意义。不能添加整数和列表
i:i+loopN
您需要遍历将用于切片l的值,因此遍历loopN。此外,您不需要范围,只需直接迭代loopN,这也是一个可迭代的,并跟踪之前迭代的值,在每次迭代中添加它们以向前移动切片
您需要在loopN列表上循环,而不是在list上循环。然后,您可以获得列表中的相应部分
我在下面将list重命名为l,以避免使用内置关键字
i = 0 chunks = [] loopN = [2,3,1] l = [1,2,3,4,5,6] for chunksize in loopN: chunks.append(l[i:i+chunksize]) i += chunksize
您可以使用^{} 根据
loopN
中的元素获取l
的切片:如果您想坚持使用列表方法,遵循您的方法,@barmar已经发现了一些错误。请注意,切片
i:i+loopN
实际上没有意义。不能添加整数和列表您需要遍历将用于切片
l
的值,因此遍历loopN
。此外,您不需要范围,只需直接迭代loopN
,这也是一个可迭代的,并跟踪之前迭代的值,在每次迭代中添加它们以向前移动切片您需要在
loopN
列表上循环,而不是在list
上循环。然后,您可以获得列表中的相应部分我在下面将
list
重命名为l
,以避免使用内置关键字相关问题 更多 >
编程相关推荐