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 相关文章推荐
Python警察与小偷的实现之一客户端与服务端通信实例
Oct 09 Python
Django的session中对于用户验证的支持
Jul 23 Python
Python语言的面相对象编程方式初步学习
Mar 12 Python
python实现猜数字小游戏
Mar 24 Python
python3使用QQ邮箱发送邮件
May 20 Python
python绘制彩虹图
Dec 16 Python
Python GUI库PyQt5图形和特效样式QSS介绍
Feb 25 Python
PyPDF2读取PDF文件内容保存到本地TXT实例
May 12 Python
tensorflow模型的save与restore,及checkpoint中读取变量方式
May 26 Python
Java多线程实现四种方式原理详解
Jun 02 Python
python对一个数向上取整的实例方法
Jun 18 Python
Python 列表推导式需要注意的地方
Oct 23 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
phpmyadmin中配置文件现在需要绝密的短语密码的解决方法
2007/02/11 PHP
执行、获取远程代码返回:file_get_contents 超时处理的问题详解
2013/06/25 PHP
PHP 中 DOMDocument保存xml时中文出现乱码问题的解决方案
2016/09/19 PHP
Mootools 1.2教程 滚动条(Slider)
2009/09/15 Javascript
javascript克隆对象深度介绍
2012/11/20 Javascript
jquery()函数的三种语法介绍
2013/10/09 Javascript
Jquery实现点击按钮,连续地向textarea中添加值的实例代码
2014/03/08 Javascript
Node.js的项目构建工具Grunt的安装与配置教程
2016/05/12 Javascript
js跨域资源共享 基础篇
2016/07/02 Javascript
JS HTML5拖拽上传图片预览
2016/07/18 Javascript
vuejs项目打包之后的首屏加载优化及打包之后出现的问题
2018/04/01 Javascript
vue setInterval 定时器失效的解决方式
2020/07/30 Javascript
pyqt4教程之实现windows窗口小示例分享
2014/03/07 Python
跟老齐学Python之折腾一下目录
2014/10/24 Python
Python编码爬坑指南(必看)
2016/06/10 Python
python中requests使用代理proxies方法介绍
2017/10/25 Python
python 实现登录网页的操作方法
2018/05/11 Python
Python告诉你木马程序的键盘记录原理
2019/02/02 Python
将python运行结果保存至本地文件中的示例讲解
2019/07/11 Python
使用Python实现图像标记点的坐标输出功能
2019/08/14 Python
Python搭建代理IP池实现获取IP的方法
2019/10/27 Python
Django重设Admin密码过程解析
2020/02/10 Python
Python对称的二叉树多种思路实现方法
2020/02/28 Python
Python3 xml.etree.ElementTree支持的XPath语法详解
2020/03/06 Python
Tensorflow实现将标签变为one-hot形式
2020/05/22 Python
python读取hdfs并返回dataframe教程
2020/06/05 Python
如何卸载python插件
2020/07/08 Python
美国女性奢华品牌精品店:INTERMIX
2017/10/12 全球购物
护士毕业生自我鉴定
2014/02/08 职场文书
讲文明树新风公益广告宣传方案
2014/02/25 职场文书
超市仓管员岗位职责
2014/04/07 职场文书
党建工作整改措施
2014/10/28 职场文书
2015年党日活动总结范文
2015/03/25 职场文书
2015年幼儿园班主任工作总结
2015/05/12 职场文书
幼儿园教学工作总结2015
2015/05/12 职场文书
CSS实现章节添加自增序号的方法
2021/06/23 HTML / CSS