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

时间:2011-01-21 04:25:53

标签: python iteration standards nested-loops

我正在寻找一个循环遍历列表的函数,这些列表会自动将结果放在一起并产生(内部)循环产生的每个结果。没有看到Python标准库中任何可识别的候选者,下面的loop函数就是结果。有没有人知道任何可用的函数做类似的事情或以更好的方式编写,而不是loop?产生的迭代的顺序在下面给出的代码的示例使用中无关紧要,但是对于其他项目中的一般用法,最好是订单列表中的产量进入其中。

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()

1 个答案:

答案 0 :(得分:4)