亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Python列表倒序輸出及其效率詳解

 更新時(shí)間:2020年03月04日 08:35:38   作者:ccneko  
在本篇文章里小編給大家整理的是關(guān)于Python列表倒序輸出及其效率詳解內(nèi)容,需要的朋友們學(xué)習(xí)下。

Python列表倒序輸出及其效率

方法一

使用Python內(nèi)置函數(shù)reversed()

for i in reversed(arr): pass

reversed返回的是迭代器,所以不用擔(dān)心內(nèi)存問題。

方法二

使用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ù)來倒序,再用range()循環(huán)

arr.sort(reverse=True)
for i in range(len(arr)): pass

因?yàn)橐扰判?,再循環(huán),所以效率會(huì)比較低。

這里不討論P(yáng)ython內(nèi)置函數(shù)sorted(),它的效率比list自帶的sort()函數(shù)要慢。

效率

對(duì)比代碼

import time

arr = [x for x in range(10000000)]
arr1 = arr.copy()

start = time.process_time()
for i in reversed(arr): pass
end = time.process_time()
print('方法一(reversed):', end - start)

start = time.process_time()
for i in range(len(arr) - 1, -1, -1): pass
end = time.process_time()
print('方法二(range倒序):', end - start)

start = time.process_time()
arr.reverse()
for i in range(len(arr)): pass
end = time.process_time()
print('方法三(先reverse再range):', end - start)

start = time.process_time()
arr1.sort(reverse=True)
for i in range(len(arr1)): pass
end = time.process_time()
print('方法四(先sort再range):', end - start)

對(duì)比結(jié)果

數(shù)組長度為一百萬時(shí)(跑了三次):

數(shù)組長度為一千萬時(shí)(跑了兩次):

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

結(jié)論

效率:方法一 > 方法二 > 方法三 > 方法四

然而并不差多少emmm

但還是盡量使用迭代器吧,數(shù)據(jù)量很大的時(shí)候不用迭代器的話有可能會(huì)占用過多的內(nèi)存。

到此這篇關(guān)于Python列表倒序輸出及其效率詳解的文章就介紹到這了,更多相關(guān)Python列表倒序輸出及其效率內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • python用faker庫批量生成假數(shù)據(jù)

    python用faker庫批量生成假數(shù)據(jù)

    這篇文章主要介紹了python用faker庫批量生成假數(shù)據(jù),幫助大家更好的理解和學(xué)習(xí)使用python,感興趣的朋友可以了解下
    2021-03-03
  • python multiprocessing模塊用法及原理介紹

    python multiprocessing模塊用法及原理介紹

    這篇文章主要介紹了python multiprocessing模塊用法及原理介紹,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-08-08
  • Python3二分查找?guī)旌瘮?shù)bisect(),bisect_left()和bisect_right()的區(qū)別

    Python3二分查找?guī)旌瘮?shù)bisect(),bisect_left()和bisect_right()的區(qū)別

    這篇文章主要介紹了Python3二分查找?guī)旌瘮?shù)bisect(),bisect_left()和bisect_right()的區(qū)別,本文通過示例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-03-03
  • 基于python歷史天氣采集的分析

    基于python歷史天氣采集的分析

    今天小編就為大家分享一篇基于python歷史天氣采集的分析,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2019-02-02
  • Python利用裝飾器實(shí)現(xiàn)類似于flask路由

    Python利用裝飾器實(shí)現(xiàn)類似于flask路由

    這篇文章主要為大家詳細(xì)介紹了Python如何利用裝飾器實(shí)現(xiàn)類似于flask路由,文中的示例代碼講解詳細(xì),對(duì)我們深入了解Python有一點(diǎn)的幫助,感興趣的可以了解一下
    2023-02-02
  • python和shell實(shí)現(xiàn)的校驗(yàn)IP地址合法性腳本分享

    python和shell實(shí)現(xiàn)的校驗(yàn)IP地址合法性腳本分享

    這篇文章主要介紹了python和shell實(shí)現(xiàn)的校驗(yàn)IP地址合法性腳本分享,每個(gè)腳本配有執(zhí)行效果圖,需要的朋友可以參考下
    2014-10-10
  • python創(chuàng)建字典(dict)的幾種方法小結(jié)(含代碼示例)

    python創(chuàng)建字典(dict)的幾種方法小結(jié)(含代碼示例)

    字典(Dictionary)是Python中一種非常靈活的數(shù)據(jù)結(jié)構(gòu),用于存儲(chǔ)鍵值對(duì)(key-value pairs),在Python中創(chuàng)建字典有多種方法,每種方法都有其特定的使用場景和優(yōu)勢,本文將詳細(xì)介紹Python中創(chuàng)建字典的幾種常見方法,需要的朋友可以參考下
    2024-09-09
  • YOLOv5車牌識(shí)別實(shí)戰(zhàn)教程(三)模型訓(xùn)練與評(píng)估

    YOLOv5車牌識(shí)別實(shí)戰(zhàn)教程(三)模型訓(xùn)練與評(píng)估

    這篇文章主要介紹了YOLOv5車牌識(shí)別實(shí)戰(zhàn)教程(三)模型訓(xùn)練與評(píng)估,在這個(gè)教程中,我們將一步步教你如何使用YOLOv5進(jìn)行車牌識(shí)別,幫助你快速掌握YOLOv5車牌識(shí)別技能,需要的朋友可以參考下
    2023-04-04
  • 重寫django的model下的objects模型管理器方式

    重寫django的model下的objects模型管理器方式

    這篇文章主要介紹了重寫django的model下的objects模型管理器方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-05-05
  • Python中使用HTMLParser解析html實(shí)例

    Python中使用HTMLParser解析html實(shí)例

    這篇文章主要介紹了Python中使用HTMLParser解析html實(shí)例,本文直接給出使用示例,并總結(jié)出HTMLParser含有的方法分為兩類,一類是需要顯式調(diào)用的,而另一類不需顯示調(diào)用,需要的朋友可以參考下
    2015-02-02

最新評(píng)論