栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

将列表分成n组的另一种方法[重复]

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

将列表分成n组的另一种方法[重复]

甲的Python配方(在Python
2.6,使用

itertools.izip_longest
):

def grouper(n, iterable, fillvalue=None):    "grouper(3, 'ABCDEFG', 'x') --> ABC DEF Gxx"    args = [iter(iterable)] * n    return itertools.zip_longest(*args, fillvalue=fillvalue)

用法示例:

>>> list(grouper(3, range(9)))[(0, 1, 2), (3, 4, 5), (6, 7, 8)]>>> list(grouper(3, range(10)))[(0, 1, 2), (3, 4, 5), (6, 7, 8), (9, None, None)]

如果您希望最后一组短于其他组而不是用填充

fillvalue
,则可以例如更改如下代码:

>>> def mygrouper(n, iterable):...     args = [iter(iterable)] * n...     return ([e for e in t if e != None] for t in itertools.zip_longest(*args))... >>> list(mygrouper(3, range(9)))[[0, 1, 2], [3, 4, 5], [6, 7, 8]]>>> list(mygrouper(3, range(10)))[[0, 1, 2], [3, 4, 5], [6, 7, 8], [9]]


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/394958.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号