Python 从itertools.product对象中的某个位置开始迭代
我正在使用python itertools模块创建一个生成器,它可以从Python 从itertools.product对象中的某个位置开始迭代,python,itertools,Python,Itertools,我正在使用python itertools模块创建一个生成器,它可以从aaa迭代到ccc 我想不出从某个位置开始迭代的方法 例如,如果输入是aba,迭代将从该位置继续 这就是我的代码现在的样子: from itertools import product strings = itertools.product(*["abc"]*3) for item in strings: print("".join(item)) 这种方法不会跳过任何计算,它只是在看到它要查找的值之前删除值。这应该
aaa
迭代到ccc
我想不出从某个位置开始迭代的方法
例如,如果输入是aba,迭代将从该位置继续
这就是我的代码现在的样子:
from itertools import product
strings = itertools.product(*["abc"]*3)
for item in strings:
print("".join(item))
这种方法不会跳过任何计算,它只是在看到它要查找的值之前删除值。这应该适用于任何iterable,但可能有一个
产品
特定的解决方案,允许您跳过生成您不关心的值
from itertools import dropwhile, product
def resume(iterable, sentinel):
yield from dropwhile(lambda x: x != sentinel, iterable)
for t in resume(product('abc', repeat=3), ('a', 'b', 'a')):
print(*t)
这种方法不会跳过任何计算,它只是在看到它要查找的值之前删除值。这应该适用于任何iterable,但可能有一个
产品
特定的解决方案,允许您跳过生成您不关心的值
from itertools import dropwhile, product
def resume(iterable, sentinel):
yield from dropwhile(lambda x: x != sentinel, iterable)
for t in resume(product('abc', repeat=3), ('a', 'b', 'a')):
print(*t)
您可以包括程序的预期输入和输出吗?我编辑为post以使其更清晰。您可以包括程序的预期输入和输出吗?我编辑为post以使其更清晰。