def fn(x):
return x*x
r = map(fn,[1,2,3,4,5,6,7,8,9])
list(r)
输出[1, 4, 9, 16, 25, 36, 49, 64, 81]
没问题,但是再次执行list(r)的时候发现输出是[],怎么变成空列表了,是因为r是一个map对象,迭代完了里面所有的数字以后就不会再接着计算了嘛?
如何才能再次让list(r)输出[1, 4, 9, 16, 25, 36, 49, 64, 81]结果呢?
谢谢
def fn(x):
return x*x
r = map(fn,[1,2,3,4,5,6,7,8,9])
list(r)
输出[1, 4, 9, 16, 25, 36, 49, 64, 81]
没问题,但是再次执行list(r)的时候发现输出是[],怎么变成空列表了,是因为r是一个map对象,迭代完了里面所有的数字以后就不会再接着计算了嘛?
如何才能再次让list(r)输出[1, 4, 9, 16, 25, 36, 49, 64, 81]结果呢?
谢谢
map对象是生成器的一种,简单理解就是只能用一次,对于这个r来说,无论如何只能用一次,可以通过使用它的拷贝对象来使用多次。