函数-生成器

变量值随用随取

创建1000个元素的列表,如果只需要用前10个,那么后面90个内存空间就浪费掉

a=[i for i in range(100)]
print(a)

生成器,generator,用next(obj)循环取值,只能朝前取值,不能后退。

a=(i for i in range(100))
print(a)

当next到最后会报StopIteration错误

用for循环取值,到最后不会报错

a=(i for i in range(10))for i in a:
    print(i)

while循环取值,最后会报错

a=(i for i in range(10))
while True:
    print(next(a))

 python2

  range=list

  xrange=generator

python3

  range=generator

  xrange 没有

原文地址:https://www.cnblogs.com/yaya625202/p/8810850.html