1.13. 列表生成式
range()
函数
测试代码:
a=range(3,8)
print(a)
![](2017-08-08 14-24-05屏幕截图.png)
可见Python2返回的是一个列表,Python3返回的不是列表
但Python2中的如果列表值过大的话,并不能创建列表:
![](2017-08-08 14-26-12屏幕截图.png)
Python3:在很多种情况下,range()函数返回的对象的行为都很像一个列表,但是它确实不是一个列表,它只是在迭代的情况下返回指定索引的值,但是它并不会在内存中真正产生一个列表对象,这样也是为了节约内存空间。
我们称这种对象是可迭代的,或者是可迭代对象,还有一种对象叫迭代器,它们需要从一个可迭代对象中连续获取指定索引的值,一直到索引结束。list()函数就是这样一个迭代器,它可以把range()函数返回的对象变成一个列表。
总结:
range() 函数返回的是一个可迭代对象(类型是对象),而不是列表类型, 所以打印的时候不会打印列表。
list() 函数是对象迭代器,把对象转为一个列表。返回的变量类型为列表。
测试:
a=range(1,10)
print(a)
print(list(a))
![](2017-08-08 14-30-58屏幕截图.png)