python中range、xrange和randrange的区别

range 
函数说明:range([start,] stop[, step]),根据startstop指定的范围以及step设定的步长,生成一个列表。

xrange 
函数说明:和range 的用法完全相同,但是返回的是一个生成器。在python3中已经由range取代xrange

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

print range(2,10)                   #[2, 3, 4, 5, 6, 7, 8, 9]
print xrange(2,10)                  #xrange(2, 10)

print range(2,10,2)                 #[2, 4, 6, 8]
print xrange(2,10,2)                #xrange(2, 10, 2)

print type(range(1,10))             #<type 'list'>
print type(xrange(1,10))            #<type 'xrange'>
print type(list(xrange(1,10)))      #<type 'list'>

但是要生成很大的数字序列的时候,用xrange会比range性能优很多,因为不需要一上来就开辟一块很大的内存空间,这两个基本上都是在循环的时候用。再循环中尽量使用 xrange 这样性能可以得到提高,除非你要返回一个列表。

l=range(0,20)
print l[0],l[5]#0 5

for i in range(0,5):print i #0 1 2 3 4
for i in xrange(0,5):print i #0 1 2 3 4

关于randrange,用法和random一样,但返回是一个结果

from random import randrange
a=randrange(10,100,2)
print a #32
posted @ 2018-03-15 16:12  ybf&yyj  阅读(5605)  评论(0编辑  收藏  举报