如何在python中按n个元素对元素进行分组
给定一个列表 [1,2,3,4,5,6,7,8,9,10,11,12]
和指定的块大小(比如 3),我怎样才能得到一个块列表[[1,2,3],[4,5,6],[7,8,9],[10,11,12]]
?
Given a list [1,2,3,4,5,6,7,8,9,10,11,12]
and a specified chunk size (say 3), how can I get a list of chunks [[1,2,3],[4,5,6],[7,8,9],[10,11,12]]
?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
好吧,强力答案是:
其中
N
是组大小(在您的例子中为 3):如果您想要一个填充值,您可以在列表理解之前执行此操作:
示例:
Well, the brute force answer is:
where
N
is the group size (3 in your case):If you want a fill value, you can do this right before the list comprehension:
Example:
您可以使用 itertools 文档中 recipes 中的 grouper 函数:
You can use the grouper function from the recipes in the itertools documentation:
怎么样
How about
请参阅 itertools 文档底部的示例: http://docs .python.org/library/itertools.html?highlight=itertools#module-itertools
您需要“grouper”方法或类似的方法。
See examples at the bottom of the itertools docs: http://docs.python.org/library/itertools.html?highlight=itertools#module-itertools
You want the "grouper" method, or something like it.