gpt4 book ai didi

python - Pythonic 方式的递归生成器?

转载 作者:行者123 更新时间:2023-11-28 20:23:52 26 4
gpt4 key购买 nike

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

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

但是,我想知道这是否可以用更 Pythonic 的方式完成。

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

最佳答案

您可以使用 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

关于python - Pythonic 方式的递归生成器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18657935/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com