当前位置:  开发笔记 > 编程语言 > 正文

在Python中嵌套到动态深度

如何解决《在Python中嵌套到动态深度》经验,为你挑选了1个好方法。

我有一个问题,我正在尝试解决这个问题,需要嵌套与列表中的项目一样多的深度.或者确切地说,在列表中迭代.

def example(arg_list):
for i in arg_list[0]:
    for j in arg_list[1]:
        for k in arg_list[2]:
            print "{} {} {}".format(i,j,k)

只要"arg_list"是包含3个迭代的列表,例如[[1,3,4],[4,5,6],[9,3,2,1,0],上述函数就可以正常运行].如果列表中总有四个迭代,那么这也很容易.我需要弄清楚如何创建一个函数,为添加到"arg_list"参数的每个iterable添加另一个嵌套级别.似乎递归可能是要走的路,但却无法解决这个问题.



1> kindall..:

您正在寻找的是笛卡尔积.Python的itertools模块有一个功能,可以为您完成.

from itertools import product

def example(arg_list):
    for items in product(*arg_list):
        print " ".join(str(item) for item in items)

推荐阅读
Gbom2402851125
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有