Python列表倒序输出及其效率详解


Posted in Python onMarch 04, 2020

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)

对比结果

数组长度为一百万时(跑了三次):

Python列表倒序输出及其效率详解

Python列表倒序输出及其效率详解

Python列表倒序输出及其效率详解

数组长度为一千万时(跑了两次):

Python列表倒序输出及其效率详解

Python列表倒序输出及其效率详解

数组长度为一亿时(跑了两次):

Python列表倒序输出及其效率详解

Python列表倒序输出及其效率详解

结论

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

然而并不差多少emmm

但还是尽量使用迭代器吧,数据量很大的时候不用迭代器的话有可能会占用过多的内存。

到此这篇关于Python列表倒序输出及其效率详解的文章就介绍到这了,更多相关Python列表倒序输出及其效率内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
zbar解码二维码和条形码示例
Feb 07 Python
浅谈Python的异常处理
Jun 19 Python
Python基于socket实现简单的即时通讯功能示例
Jan 16 Python
python实现图像识别功能
Jan 29 Python
python 脚本生成随机 字母 + 数字密码功能
May 26 Python
vue.js实现输入框输入值内容实时响应变化示例
Jul 07 Python
python针对不定分隔符切割提取字符串的方法
Oct 26 Python
解决pycharm运行时interpreter为空的问题
Oct 29 Python
解决Django中多条件查询的问题
Jul 18 Python
双向RNN:bidirectional_dynamic_rnn()函数的使用详解
Jan 20 Python
Python Scrapy框架第一个入门程序示例
Feb 05 Python
Pycharm安装第三方库失败解决方案
Nov 17 Python
python tkinter之顶层菜单、弹出菜单实例
Mar 04 #Python
python tkinter之 复选、文本、下拉的实现
Mar 04 #Python
自定义Django默认的sitemap站点地图样式
Mar 04 #Python
Python 窗体(tkinter)下拉列表框(Combobox)实例
Mar 04 #Python
Python3中的f-Strings增强版字符串格式化方法
Mar 04 #Python
Python MySQLdb 执行sql语句时的参数传递方式
Mar 04 #Python
python3格式化字符串 f-string的高级用法(推荐)
Mar 04 #Python
You might like
详解WordPress中添加和执行动作的函数使用方法
2015/12/29 PHP
PHP实现随机生成水印图片功能
2017/03/22 PHP
phpStudy中升级MySQL版本到5.7.17的方法步骤
2017/08/03 PHP
laravel5.5安装jwt-auth 生成token令牌的示例
2019/10/24 PHP
Yii中特殊行为ActionFilter的使用方法示例
2020/10/18 PHP
自适应高度框架 ----属个人收藏内容
2007/01/22 Javascript
js jq 单击和双击区分示例介绍
2013/11/05 Javascript
jquery改变tr背景色的示例代码
2013/12/28 Javascript
javascript根据时间生成m位随机数最大13位
2014/10/30 Javascript
浅谈javascript语法和定时函数
2015/05/03 Javascript
jQuery中$this和$(this)的区别介绍(一看就懂)
2015/07/06 Javascript
JavaScript中的数据类型转换方法小结
2015/10/26 Javascript
jQuery实现简单的图片查看器
2020/09/11 Javascript
jQuery解决IE6、7、8不能使用 JSON.stringify 函数的问题
2016/05/31 Javascript
AngularJS中如何使用echart插件示例详解
2016/10/26 Javascript
jQuery实现的无缝广告图片左右滚动功能详解
2016/12/24 Javascript
jQuery实现元素的插入
2017/02/27 Javascript
angularjs的select使用及默认选中设置
2017/04/08 Javascript
使用JS获取页面上的所有标签
2018/10/18 Javascript
json 带斜杠时如何解析的实现
2019/08/12 Javascript
Node.js学习教程之Module模块
2019/09/03 Javascript
微信小程序保存图片到相册权限设置
2020/04/09 Javascript
Vue移动端项目实现使用手机预览调试操作
2020/07/18 Javascript
Flexible.js可伸缩布局实现方法详解
2020/11/13 Javascript
pyinstaller打包单个exe后无法执行错误的解决方法
2019/06/21 Python
python tornado修改log输出方式
2019/11/18 Python
关于numpy.where()函数 返回值的解释
2019/12/06 Python
tensorflow 模型权重导出实例
2020/01/24 Python
python 异步async库的使用说明
2020/05/04 Python
美国宠物护理专家:Revival Animal Health
2020/01/05 全球购物
应届优秀本科大学毕业生自我鉴定
2014/01/21 职场文书
合伙经营协议书
2014/04/18 职场文书
爱祖国爱家乡演讲稿
2014/09/02 职场文书
环卫工作汇报材料
2014/10/28 职场文书
PHP新手指南
2021/04/01 PHP
SpringBoot工程下使用OpenFeign的坑及解决
2021/07/02 Java/Android