假设我有一个像这样的简单生成器函数(我有充分的理由使用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),那么列表转换就可以了!任何人都知道发生了什么?