Python range和xrange的區別和聯系

nevz7110 8年前發布 | 8K 次閱讀 Python開發

來自: http://blog.csdn.net//never_cxb/article/details/49962175


Python range和xrange的區別和聯系

一言以蔽之

range產生的是一個列表,而xrange產生的是一個類似迭代器的。

所以對于較大的集合時候,xrange比range性能好。

因為range一次把所以數據都返回,而xrange每次調用返回其中的一個值

</blockquote>

代碼驗證

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</pre>

輸出

0.292618551173
499999500000
0.249540776676
499999500000

可以看出xrange運行時間要小于range,數據量越大時,兩者差別越明顯。

老婆大人管錢管得緊,如果文章對您有幫助,煩請支持-=-

支付寶

</div>

 本文由用戶 nevz7110 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!