可能重复:
如何在Python中将列表拆分为大小均匀的块?
你好,
我正在尝试找到一种更简单的方法来执行以下操作:
def list_split(list, size):
result = [[]]
while len(list) > 0:
if len(result[-1]) >= size: result.append([])
result[-1].append(list.pop(0))
return result
Run Code Online (Sandbox Code Playgroud)
用法示例:
>>> list_split([0, 1, 2, 3, 4, 5, 6], 2)
[[0, 1], [2, 3], [4, 5], [6]]
>>> list_split([0, 1, 2, 3, 4, 5, 6], 3)
[[0, 1, 2], [3, 4, 5], [6]]
Run Code Online (Sandbox Code Playgroud)
我不知道是否有内置的方法来做到这一点,可能是切片或其他东西.
这与如何在python中将列表拆分为给定数量的子列表中的帖子类似但不相同
谢谢
编辑:正如Anurag Uniyal评论的那样,这是一个副本如何将列表拆分成大小均匀的块?,应该关闭,这是我做不到的.
您可以使用切片来获取列表的子集.
例:
>>> L = [0, 1, 2, 3, 4, 5, 6]
>>> n = 3
>>> [L[i:i+n] for i in range(0, len(L), n)]
[[0, 1, 2], [3, 4, 5], [6]]
>>>
Run Code Online (Sandbox Code Playgroud)