Python列表倒序输出及其效率详解
Python列表倒序输出及其效率
方法一
使用Python内置函数reversed()
foriinreversed(arr):pass
reversed返回的是迭代器,所以不用担心内存问题。
方法二
使用range()倒序
foriinrange(len(arr)-1,-1,-1):pass
方法三
先使用list自带的reverse()函数,再用range()循环
arr.reverse() foriinrange(len(arr)):pass
因为要先倒序,再循环,所以效率会比较低。
方法四
先使用list自带的sort()函数来倒序,再用range()循环
arr.sort(reverse=True) foriinrange(len(arr)):pass
因为要先排序,再循环,所以效率会比较低。
这里不讨论Python内置函数sorted(),它的效率比list自带的sort()函数要慢。
效率
对比代码
importtime arr=[xforxinrange(10000000)] arr1=arr.copy() start=time.process_time() foriinreversed(arr):pass end=time.process_time() print('方法一(reversed):',end-start) start=time.process_time() foriinrange(len(arr)-1,-1,-1):pass end=time.process_time() print('方法二(range倒序):',end-start) start=time.process_time() arr.reverse() foriinrange(len(arr)):pass end=time.process_time() print('方法三(先reverse再range):',end-start) start=time.process_time() arr1.sort(reverse=True) foriinrange(len(arr1)):pass end=time.process_time() print('方法四(先sort再range):',end-start)
对比结果
数组长度为一百万时(跑了三次):
数组长度为一千万时(跑了两次):
数组长度为一亿时(跑了两次):
结论
效率:方法一>方法二>方法三>方法四
然而并不差多少emmm
但还是尽量使用迭代器吧,数据量很大的时候不用迭代器的话有可能会占用过多的内存。
到此这篇关于Python列表倒序输出及其效率详解的文章就介绍到这了,更多相关Python列表倒序输出及其效率内容请搜索毛票票以前的文章或继续浏览下面的相关文章希望大家以后多多支持毛票票!
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。