简单的发电机功能和numpy不好玩?

时间:2014-08-27 13:13:29

标签: python numpy itertools functools

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

0 个答案:

没有答案