python中range()与xrange区别

 1. range()返回一个list,xrange()返回一个迭代对象

 

print range(10)
print xrange(10)

print type(range(10))
print type(xrange(10))

输出:
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
xrange(10)
<type 'list'>
<type 'xrange'>

 

 2. 通过sys.getsizeof(()方法可以看到range返回list,它所占内存为所有元素累加;xrange则只返回一个32byte的对象,无论它要返回多少数值。

import sys

print sys.getsizeof(range(10000))
print sys.getsizeof(xrange(10000))
print sys.getsizeof(xrange(100))

输出:
80064
32
32

 

3. 性能比较

 

import time

start = time.time()

for i in  range(100000000):
    pass

print "range use %ss" % (int(time.time() - start))

start = time.time()
for i in xrange(100000000):
    pass

print "xrange use %ss" % (int(time.time() - start))

输出:
range use 6s
xrange use 4s

 

 

4. 总结

正常情况下,使用range和xrange都行,如果你range值很大,则无论存储空间还是迭代性能xrange都优于range。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值