list.append在Python生成器中

时间:2016-09-01 11:07:12

标签: python python-3.x append generator

我写了一个非常简单的生成器函数:

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”没有给出相关结果。

0 个答案:

没有答案