Python列表倒序輸出及其效率詳解
Python列表倒序輸出及其效率
方法一
使用Python內(nèi)置函數(shù)reversed()
for i in reversed(arr): pass
reversed返回的是迭代器,所以不用擔(dān)心內(nèi)存問(wèn)題。
方法二
使用range()倒序
for i in range(len(arr) - 1, -1, -1): pass
方法三
先使用list自帶的reverse()函數(shù),再用range()循環(huán)
arr.reverse()for i in range(len(arr)): pass
因?yàn)橐鹊剐颍傺h(huán),所以效率會(huì)比較低。
方法四
先使用list自帶的sort()函數(shù)來(lái)倒序,再用range()循環(huán)
arr.sort(reverse=True)for i in range(len(arr)): pass
因?yàn)橐扰判颍傺h(huán),所以效率會(huì)比較低。
這里不討論P(yáng)ython內(nèi)置函數(shù)sorted(),它的效率比list自帶的sort()函數(shù)要慢。
效率
對(duì)比代碼
import timearr = [x for x in range(10000000)]arr1 = arr.copy()start = time.process_time()for i in reversed(arr): passend = time.process_time()print(’方法一(reversed):’, end - start)start = time.process_time()for i in range(len(arr) - 1, -1, -1): passend = time.process_time()print(’方法二(range倒序):’, end - start)start = time.process_time()arr.reverse()for i in range(len(arr)): passend = time.process_time()print(’方法三(先reverse再range):’, end - start)start = time.process_time()arr1.sort(reverse=True)for i in range(len(arr1)): passend = time.process_time()print(’方法四(先sort再range):’, end - start)
對(duì)比結(jié)果
數(shù)組長(zhǎng)度為一百萬(wàn)時(shí)(跑了三次):



數(shù)組長(zhǎng)度為一千萬(wàn)時(shí)(跑了兩次):


數(shù)組長(zhǎng)度為一億時(shí)(跑了兩次):


結(jié)論
效率:方法一 > 方法二 > 方法三 > 方法四
然而并不差多少emmm
但還是盡量使用迭代器吧,數(shù)據(jù)量很大的時(shí)候不用迭代器的話(huà)有可能會(huì)占用過(guò)多的內(nèi)存。
到此這篇關(guān)于Python列表倒序輸出及其效率詳解的文章就介紹到這了,更多相關(guān)Python列表倒序輸出及其效率內(nèi)容請(qǐng)搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!
相關(guān)文章:
1. Vue 實(shí)現(xiàn)對(duì)quill-editor組件中的工具欄添加title2. 使用Python webdriver圖書(shū)館搶座自動(dòng)預(yù)約的正確方法3. 在線(xiàn)php代碼縮進(jìn)、代碼美化工具:PHP Formatter4. ASP.NET MVC使用jQuery ui的progressbar實(shí)現(xiàn)進(jìn)度條5. Python 合并拼接字符串的方法6. Linux刪除系統(tǒng)自帶版本Python過(guò)程詳解7. Python3 json模塊之編碼解碼方法講解8. Python字符串到字節(jié)的轉(zhuǎn)換。雙反斜杠問(wèn)題9. Android 簡(jiǎn)單的實(shí)現(xiàn)滑塊拼圖驗(yàn)證碼功能10. ASP基礎(chǔ)知識(shí)VBScript基本元素講解

網(wǎng)公網(wǎng)安備