为了账号安全,请及时绑定邮箱和手机立即绑定

将列表分成n组的另一种方法

将列表分成n组的另一种方法

皈依舞 2019-12-11 15:09:05
假设我有一个任意长度L的列表:L = list(range(1000))将列表分成几组的最佳方法是n什么?这是我能够想到的最佳结构,由于某种原因,它似乎并不是完成任务的最佳方法:n = 25for i in range(0, len(L), n):    chunk = L[i:i+25]有内置的功能可以做到这一点吗?编辑:早期的答案是将我的for循环重新制作为listcomp,这不是这个主意;您基本上是用另一种形式给我我的确切答案。我正在查看是否有替代方法可以完成此任务,例如.split列表上的假设或类似内容。我也在昨晚编写的一些代码中将其用作生成器:def split_list(L, n):    assert type(L) is list, "L is not a list"    for i in range(0, len(L), n):        yield L[i:i+n]
查看完整描述

3 回答

?
森林海

TA贡献2011条经验 获得超2个赞

Itertools.groupby是一个很好的工具,这是一种使用整数除法来拆分整数列表的方法:


>>> for key, group in itertools.groupby(range(10), lambda k: k//3):

...  print key, list(group)

... 

0 [0, 1, 2]

1 [3, 4, 5]

2 [6, 7, 8]

3 [9]

(列表必须以0开头才能以完整的组开头。)



查看完整回答
反对 回复 2019-12-12
  • 3 回答
  • 0 关注
  • 451 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信