我写了一个非常简单的生成器函数:
def prefixes(xs):
prefix = []
for x in xs:
prefix.append(x)
yield prefix
我希望输出为:
>>> list(prefixes([1, 2, 3]))
[[1], [1, 2], [1, 2, 3]]
但我得到了:
>>> list(prefixes([1, 2, 3]))
[[1, 2, 3], [1, 2, 3], [1, 2, 3]]
这很奇怪。第一次迭代如何产生所有列表? current
应该只包含第一项。为什么输出是什么而不是我期望的呢?
P.S。在Google中搜索“生成器中的python list.append”没有给出相关结果。