Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/345.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python的标准库中是否有一个函数执行类似于循环函数的操作?_Python_Iteration_Standards_Nested Loops - Fatal编程技术网

Python的标准库中是否有一个函数执行类似于循环函数的操作?

Python的标准库中是否有一个函数执行类似于循环函数的操作?,python,iteration,standards,nested-loops,Python,Iteration,Standards,Nested Loops,我正在寻找一个函数来循环一系列列表,这些列表将自动将结果放在一起,并生成内部循环生成的每个结果。由于没有从Python的标准库中看到任何可识别的候选对象,下面的循环函数就是结果。有没有人知道任何可用的函数可以做类似的事情,或者是以更好的方式编写的,可以用来代替循环?在下面给出的代码的示例使用中,生成的迭代的顺序并不重要,但是对于其他项目中的一般使用,最好是在顺序列表中显示生成 from itertools import permutations GROUPS = ('he', 'she'),

我正在寻找一个函数来循环一系列列表,这些列表将自动将结果放在一起,并生成内部循环生成的每个结果。由于没有从Python的标准库中看到任何可识别的候选对象,下面的循环函数就是结果。有没有人知道任何可用的函数可以做类似的事情,或者是以更好的方式编写的,可以用来代替循环?在下面给出的代码的示例使用中,生成的迭代的顺序并不重要,但是对于其他项目中的一般使用,最好是在顺序列表中显示生成

from itertools import permutations

GROUPS = ('he', 'she'), ('man', 'woman'), ('male', 'female'), ('adam', 'eve')

def main():
    for size in range(2, len(GROUPS) + 1):
        for groups in permutations(GROUPS, size):
            for items in loop(*groups):
                print(''.join(items).capitalize())

def loop(*args):
    head, tail = args[0], args[1:]
    if tail:
        for a in head:
            for b in loop(*tail):
                yield [a] + b
    else:
        for a in head:
            yield [a]

if __name__ == '__main__':
    main()

谢谢在阅读itertools模块的文档时,一定错过了这一点。itertools非常复杂,许多函数都没有明显的用途,尽管这不是其中之一。谢谢!在阅读itertools模块的文档时,一定错过了这一点。itertools非常复杂,许多函数都没有明显的用途,尽管这不是其中之一。