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