假设我有一个迭代生成器的 for 循环,并且在这个循环中我正在构建一个列表以供以后使用:
q = []
for index, val in enumerate(['a', 'b', 'c']):
q.append(index+val)
我想保留生成器而不创建这样的函数:
def foo(gen):
for index, val in gen:
yield index+val
这完全有可能还是我在这里看不到一些固有的问题?
我想它应该看起来像这样:
iter_q = something()
for index, val in enumerate(['a', 'b', 'c']):
q.add_iteration(index+val)
好的,既然我已经写了这个,它看起来确实是不可能的(或无用的),因为这个 for 循环必须在“生成器”准备好之前遍历整个列表,这使得它只是一个预制列表的迭代器,而不是对象有用意义上的生成器。
无论如何发布,因为我自己找不到这样的问题。(另外,也许有人还有一些有趣的事情要说)