内存使用情况

迭代器只管当前迭代位置的数据,而list要把所有数据塞进内存。就说你说的py2里面的range和xrange来说,range(x)会生成x个数自成一个list塞进内存里,每个元素都是实实在在存在的。但xrange生成器产生的迭代器每个时刻只存了一个数,然后下次加一,不存在一个list。而当大多数做个纯数字循环的时候,我们根本不需要一个list,只要一个量每次能递加就好了,所以这个时候用range就是浪费。

面试题:

8、python2和python3的range(100)的区别

python2返回列表,python3返回迭代器,节约内存