您好,登錄后才能下訂單哦!
這篇文章主要為大家展示了“Python中列表倒序輸出及其效率的示例分析”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“Python中列表倒序輸出及其效率的示例分析”這篇文章吧。
Python列表倒序輸出及其效率
方法一
使用Python內置函數reversed()
for i in reversed(arr): pass
reversed返回的是迭代器,所以不用擔心內存問題。
方法二
使用range()倒序
for i in range(len(arr) - 1, -1, -1): pass
方法三
先使用list自帶的reverse()函數,再用range()循環
arr.reverse() for i in range(len(arr)): pass
因為要先倒序,再循環,所以效率會比較低。
方法四
先使用list自帶的sort()函數來倒序,再用range()循環
arr.sort(reverse=True) for i in range(len(arr)): pass
因為要先排序,再循環,所以效率會比較低。
這里不討論Python內置函數sorted(),它的效率比list自帶的sort()函數要慢。
效率
對比代碼
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)
對比結果
數組長度為一百萬時(跑了三次):
數組長度為一千萬時(跑了兩次):
數組長度為一億時(跑了兩次):
結論
效率:方法一 > 方法二 > 方法三 > 方法四
然而并不差多少emmm
但還是盡量使用迭代器吧,數據量很大的時候不用迭代器的話有可能會占用過多的內存。
以上是“Python中列表倒序輸出及其效率的示例分析”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。