将列表划分为的最佳方式是什么roughly等份?例如,如果列表有 7 个元素,并将其分为 2 部分,我们希望在一部分中获取 3 个元素,而另一部分应该有 4 个元素。
我正在寻找类似的东西even_split(L, n)
那打破了L
into n
parts.
def chunks(L, n):
""" Yield successive n-sized chunks from L.
"""
for i in range(0, len(L), n):
yield L[i:i+n]
上面的代码给出了 3 个块,而不是 3 个块。我可以简单地转置(迭代它并获取每列的第一个元素,将该元素称为第一部分,然后获取第二个元素并将其放入第二部分,等等),但这会破坏项目的顺序。
您可以将其相当简单地编写为列表生成器:
def split(a, n):
k, m = divmod(len(a), n)
return (a[i*k+min(i, m):(i+1)*k+min(i+1, m)] for i in range(n))
Example:
>>> list(split(range(11), 3))
[[0, 1, 2, 3], [4, 5, 6, 7], [8, 9, 10]]
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)