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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM