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安装第三方库的3种方法
Jun 21 Python
Python自定义类的数组排序实现代码
Aug 28 Python
Python 基础教程之闭包的使用方法
Sep 29 Python
Python查找文件中包含中文的行方法
Dec 19 Python
python使用pymongo操作mongo的完整步骤
Apr 13 Python
Python绘图Matplotlib之坐标轴及刻度总结
Jun 28 Python
Python爬虫学习之翻译小程序
Jul 30 Python
基于python进行抽样分布描述及实践详解
Sep 02 Python
用pandas划分数据集实现训练集和测试集
Jul 20 Python
python3 googletrans超时报错问题及翻译工具优化方案 附源码
Dec 23 Python
Python 如何解决稀疏矩阵运算
May 26 Python
python基础入门之字典和集合
Jun 13 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
CI框架集成Smarty的方法分析
2016/05/17 PHP
在laravel中实现ORM模型使用第二个数据库设置
2019/10/24 PHP
Laravel框架下载,安装及路由操作图文详解
2019/12/04 PHP
jQuery中调用WebService方法小结
2011/03/28 Javascript
JavaScript 继承使用分析
2011/05/12 Javascript
使用jquery实现图文切换效果另加特效
2013/01/20 Javascript
setTimeout函数兼容各主流浏览器运行执行效果实例
2013/06/13 Javascript
单击复制文字兼容各浏览器的完美解决方案
2013/07/04 Javascript
使用GruntJS链接与压缩多个JavaScript文件过程详解
2013/08/02 Javascript
jQuery的观察者模式详解
2014/12/22 Javascript
JavaScript中的object转换函数toString()与valueOf()介绍
2014/12/31 Javascript
jQuery实现指定区域外单击关闭指定层的方法【经典】
2016/06/22 Javascript
JS触发服务器控件的单击事件(详解)
2016/08/06 Javascript
TypeScript入门-基本数据类型
2017/03/28 Javascript
学习使用Bootstrap页面排版样式
2017/05/11 Javascript
tangram.js库实现js类的方式实例分析
2018/01/06 Javascript
VUE2.0 ElementUI2.0表格el-table自适应高度的实现方法
2018/11/28 Javascript
React服务端渲染原理解析与实践
2021/03/04 Javascript
python list语法学习(带例子)
2013/11/01 Python
Python2.x利用commands模块执行Linux shell命令
2016/03/11 Python
基于Python的微信机器人开发 微信登录和获取好友列表实现解析
2019/08/21 Python
pycharm快捷键汇总
2020/02/14 Python
python 工具 字符串转numpy浮点数组的实现
2020/03/14 Python
浅谈django 模型类使用save()方法的好处与注意事项
2020/03/28 Python
Python 读取位于包中的数据文件
2020/08/07 Python
使用豆瓣源来安装python中的第三方库方法
2021/01/26 Python
Python页面加载的等待方式总结
2021/02/28 Python
python实现杨辉三角的几种方法代码实例
2021/03/02 Python
美国时尚女装在线:Missguided
2016/12/03 全球购物
澳洲小众品牌的集合网站:BNKR
2018/02/23 全球购物
应届毕业生个人自荐信范文
2013/11/30 职场文书
护理毕业生自荐信范文
2013/12/22 职场文书
秸秆管理实施方案
2014/03/15 职场文书
天河观后感
2015/06/11 职场文书
运动会通讯稿200字
2015/07/20 职场文书
Java实现贪吃蛇游戏的示例代码
2022/09/23 Java/Android