关闭

Python range和xrange的区别和联系

标签: python迭代器性能数据class
1553人阅读 评论(0) 收藏 举报
分类:

Python range和xrange的区别和联系

一言以蔽之

range产生的是一个列表,而xrange产生的是一个类似迭代器的。

所以对于较大的集合时候,xrange比range性能好。

因为range一次把所以数据都返回,而xrange每次调用返回其中的一个值

代码验证

print  range(1,10)
print  xrange(1,10)
print  list(xrange(1,10))

输出

[1, 2, 3, 4, 5, 6, 7, 8, 9]
xrange(1, 10)
[1, 2, 3, 4, 5, 6, 7, 8, 9]

看下range和xrange的类型信息

print type(range(1,10))
print type(xrange(1,10))

输出

<type 'list'>
<type 'xrange'>

统计程序运行时间

import  time

sum1 = 0
start1 = time.clock()
for i in range(1,1000000):
    sum1 += i
end1 = time.clock()
print end1 - start1
print sum1

sum2 = 0
start2 = time.clock()
for i in xrange(1,1000000):
     sum2 += i
end2 = time.clock()
print end2 - start2
print sum2

输出

0.292618551173
499999500000
0.249540776676
499999500000

可以看出xrange运行时间要小于range,数据量越大时,两者差别越明显。

老婆大人管钱管得紧,如果文章对您有帮助,烦请支持-=-

支付宝

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:400619次
    • 积分:7154
    • 等级:
    • 排名:第3250名
    • 原创:200篇
    • 转载:7篇
    • 译文:0篇
    • 评论:117条
    文章分类
    感谢捐赠2元彩票钱
    微信
    个人公众号 欢迎关注
    支付宝
    最新评论