1
我正在尋找一個函數來循環列表,這些列表會自動將結果放在一起併產生(內部)循環產生的每個結果。沒有看到任何來自Python標準庫的可識別候選人,結果如下loop
函數。有沒有人知道任何可用的功能,做了類似的事情,或者是以更好的方式寫出來,而不是使用loop
?在下面給出的代碼示例用法中,迭代迭代的順序並不重要,但是對於其他項目中的一般用法,可能最好是將順序列表中的收益列入其中。在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」模塊的文檔時,一定錯過了這一點。 – 2011-01-21 04:55:06