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

展平一个非常嵌套的循环[重复]

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

展平一个非常嵌套的循环[重复]

使用itertools库非常容易。

for x, y, z in itertools.product(a, b, c):    print x, y, z

如何

itertools.product
实施:

def product(*args, **kwds):    # product('ABCD', 'xy') --> Ax Ay Bx By Cx Cy Dx Dy    # product(range(2), repeat=3) --> 000 001 010 011 100 101 110 111    pools = map(tuple, args) * kwds.get('repeat', 1)    result = [[]]    for pool in pools:        result = [x+[y] for x in result for y in pool]    for prod in result:        yield tuple(prod)

例:

In [1]: a = range(2)    In [2]: b = range(2, 4)In [3]: c = range(4, 6)In [4]: import itertoolsIn [5]: list(itertools.product(a, b, c))Out[5]: [(0, 2, 4), (0, 2, 5), (0, 3, 4), (0, 3, 5), (1, 2, 4), (1, 2, 5), (1, 3, 4), (1, 3, 5)]In [6]: for x, y, z in itertools.product(a, b, c):   ...:     print 'x: %d, y: %d, z: %d' % (x, y, z)   ...: x: 0, y: 2, z: 4x: 0, y: 2, z: 5x: 0, y: 3, z: 4x: 0, y: 3, z: 5x: 1, y: 2, z: 4x: 1, y: 2, z: 5x: 1, y: 3, z: 4x: 1, y: 3, z: 5


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

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

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