以Pythonic方式递归生成器?

2024-06-01 01:22:34 发布

您现在位置:Python中文网/ 问答频道 /正文

下面是一个生成器,它可以从多个字符串中创建由一个字符组成的所有组合:

('ab', 'cd', 'ef') => 'ace', 'acf', 'ade', 'adf', 'bce', 'bcf', 'bde', 'bdf'.

然而,我想知道这是否可以在一个更为Python。你知道吗

# Example input data
t = ('ab', 'cd', 'ef')

# Recursive generator
def comb(t):
    if t:
        for c in t[0]:
            for s in comb(t[1:]):
                yield c + s 
    else:
        yield ''

# Test of generator
for r in comb(t):
    print(r)

Tags: 字符串inforabcd字符generatorbce
1条回答
网友
1楼 · 发布于 2024-06-01 01:22:34

您可以使用itertools.product

>>> from itertools import product
>>> lis = ('ab', 'cd', 'ef')
for p in product(*lis):
    print "".join(p)
...     
ace
acf
ade
adf
bce
bcf
bde
bdf

相关问题 更多 >