1

假设我有一个像这样的简单生成器函数(我有充分的理由使用 numpy 数组,因为实际情况会涉及一些向量操作):

def testfun():
    x = np.array(0)
    while True:
        x += np.array(1)
        yield x

取 10 个第一要素:

test = testfun()
test_slice = it.islice(test, 0, 10)

现在使用 .next() 给出从 1 到 10 的预期值。但尝试将其转换为列表,会发生这种情况:

list(test_slice)
out:
 [array(10),
 array(10),
 array(10),
 array(10),
 array(10),
 array(10),
 array(10),
 array(10),
 array(10),
 array(10)]

WTF?!?!

如果我修改代码的最后一行以产生 np.array(x),那么列表转换就可以了!有谁知道发生了什么?

4

0 回答 0