python - 为什么这个 itertools 函数在另一个函数之外工作而不在内部工作?
问题描述
我正在尝试在 Python 中使用 itertools 产品找到所有可能的组合。该代码有效,但是一旦我尝试产生我的结果而不是打印它们,它只会经历一个循环或重复,而忽略重复参数。
这有效:
for i in range(1, 4):
g = itertools.product(range(5), repeat=i)
for j in range(len(al) ** i):
print(next(g))
这不会:
def func():
for i in range(1, 4):
g = itertools.product(range(5), repeat=i)
for j in range(len(al) ** i):
yield next(g)
for i in range(100):
print(next(func()))
我尝试过使用下一个语句并将 itertools 函数放在不同的地方。谷歌不是很有帮助,因为所有结果都只是非常基本的 itertools 教程。
我怎样才能让它在一个函数中工作?
解决方案
我猜你想要这个?
f = func()
for i in range(100):
print(next(f))
下次请提供一个 mre:https ://stackoverflow.com/help/minimal-reproducible-example
推荐阅读
- android - 准备好外层播放器后如何重新添加媒体源?
- ios - 如何在 Swift 中的 didReceiveRemoteNotification 上从 App Delegate 推送视图控制器?
- selenium - 如何在 Capybara 通过 Selenium 运行的 Chrome 中启用密码保存?
- xcode - 您如何更改查看情节提要的设备
- c# - 将 Json 转换为字符串数组
- python-2.7 - Tensorflow:InvalidArgumentError:[0, 150] 中的预期大小 [0],但得到了 300
- python - pyCharm 在引用另一个文件的每个导入语句下都有红色波浪线
- python - 是否可以在 Python 3 中获取临时文件的路径
- javascript - 设置一个用于 nodejs、浏览器和其他 typescript 项目的 typescript 库
- android - 如何合并firestore中的任务以创建AND查询?