这篇文章主要是个人笔记,对python一些基础知识做记录
1:range 和 xrange的区别
range
用法:range(start, end, step = 1)
说明:取值区间[start, end), 间隔为step
返回:list列表,遍历得时候需要在内存中创建整个list表对象
# intput:
import sys
r = range(5) # 相当于range(0, 5, 1)
print r
print type(e)
print sys.getsizeof(r)
# output:
# [0, 1, 2, 3, 4]
# <type 'list'>
# 104
xrange
用法: xrange(start, end, step = 1)
说明:取值区间[start, end), 间隔为step
返回:xrange对象,可迭代对象
# input
import sys
r = xrange(5)
print r
print type(e)
print sys.getsizeof(r)
# output
# xrange(5)
# <type 'xrange'>
# 32
有上面得列子可以看到两者还是有本质得区别得,range返回得是list对象,xrange返回得是xrange对象(可迭代对象)
所以,使用range时,需要创建整个列表,返回时要在内存在拷贝整个列表,当列表很大时,耗时和内存都是不能接受的。
如果是在for 循环中使用,建议使用xrange,如果想要返回的是list,则使用range