range與xrange的比較
range
函數用法:
range( stop)
range(start,stop[,step])
函數說明:
這是一個建立包含數列的清單的通用函數。它最常用於for循環。參數必須為普通的整數。如果step參數省略,則預設為1。如果start參數省略,則預設為0。函數的完整形式傳回一個整數列表[start, start step, start 2 * step, …]。如果step為正,則最後一個元素start i * step最大且小於stop;如果step為負,則最後一個元素start i * step最小且大於stop。 step必須不能為零(否則會引發ValueError)。
範例
xrange
#函數用法:
xrange(stop)
# #xrange(start,stop[,step])
函數說明:
此函數與range()十分相似,但傳回的是xrange物件類型而非清單。這是一個惰性的序列類型,它產生與對應的列表相同的值,但不會真正同時一起儲存它們。 xrange()相比range()的優勢不大(因為xrange()仍然必須創建需要的值),除非在內存緊張的機器上使用一個非常大的range或這range的所有元素從不使用(例如當迴圈經常被break終止)。
xrange物件類型說明
xrange型別是不可變的序列,通常用於循環。 xrange類型的好處是xrange物件始終佔用相同數量的內存,無論它表示的範圍的大小。但它沒有始終一致的性能優勢。
xRange物件的行為很少:它們只支援索引、迭代和len()函數。
範例
由上面的範例可以看出:range()與xrange()方法完全相同,基本上都是在迴圈的時候用,而且兩者輸出的結果都一樣,兩者最大的不同點在於range()會直接產生一個list對象;xrange()生成的則是xrange對象而不是list對象,每次調用返回其中的值。
以上是python相對於range應該比較傾向實用xrange嗎的詳細內容。更多資訊請關注PHP中文網其他相關文章!