Python2升級到Python3的時候,我們會注意到xrange報錯
這時建議將xrange換成range
Python 2.7.13 (v2.7.13:a06454b1afa1, Dec 17 2016, 20:53:40) [MSC v.1500 64 bit (AMD64)] on win32 Type "help", "copyright", "credits" or "license" for more information. >>> type(range(6)) <type 'list'>
python2中,range的返回值是list,這意味著內存將會分布相應的長度的空間給list。
Python 3.7.1 (v3.7.1:260ec2c36a, Oct 20 2018, 14:57:15) [MSC v.1915 64 bit (AMD64)] on win32 Type "help", "copyright", "credits" or "license" for more information. >>> type(range(6)) <class 'range'>
python3中返回值是一個對象,并沒有將數據完全實例化,所以內存中只有一個對象的空間,對性能優化還是很有幫助的。
當然了你也可以在python3寫一個xrange
def xrange(x): n=0 while n<x: yield n n+=1
參考:https://blog.csdn.net/mvs2008/article/details/73693012
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。