您好,登录后才能下订单哦!
这篇文章主要为大家展示了“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进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。