我觉得应该有一个可爱的方法让以下(非工作)代码工作:
a, b, c, d = generator()
这里的生成器是无限的,生成的对象是有趣的。这只是一个很好的表达方式,让所有这些变量与生成的模式区别开来。不幸的是,这是一个语法错误。我们可以这样做:
a, b, c, d, *_ = generator()
但不幸的是,这试图使_
成为一个无限列表,这不是我想要的。我希望它能抓住发电机的剩余部分(供将来参考或忽略)。你知道吗
我也可以这样做:
gen = generator()
a, b, c, d = (gen.__next__() for _ in range(0, 4))
但这需要我指定4,我不希望这样做。itertools islice符号看起来更好:
a, b, c, d = itertools.islice(generator(), 4)
但仍然有同样的问题需要计算。我知道这不是世界末日,但我觉得这应该是一个可以解决的问题!你知道吗
一种详细的方法,它将无限生成器视为一个可以根据需要填充池的流,从中可以提取项目。错误处理会在分配尝试占用太多时间时填满池。你知道吗
做了这件事,我觉得不值得这么麻烦。计算
islice
左边的变量数有多难?你知道吗相关问题 更多 >
编程相关推荐