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函数缺省值与引用学习笔记分享
Feb 10 Python
跟老齐学Python之复习if语句
Oct 02 Python
Python解析xml中dom元素的方法
Mar 12 Python
python实现字符串和字典的转换
Sep 29 Python
对Python3 pyc 文件的使用详解
Feb 16 Python
SpringBoot实现登录注册常见问题解决方案
Mar 04 Python
django 取消csrf限制的实例
Mar 13 Python
PageFactory设计模式基于python实现
Apr 14 Python
Python使用Paramiko控制liunx第三方库
May 20 Python
Python 使用双重循环打印图形菱形操作
Aug 09 Python
常用的Python代码调试工具总结
Jun 23 Python
python多线程方法详解
Jan 18 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
php获取文件后缀的9种方法
2016/03/22 PHP
4种Windows系统下Laravel框架的开发环境安装及部署方法详解
2020/04/06 PHP
利用XMLHTTP传递参数在另一页面执行并刷新本页
2006/10/26 Javascript
jQuery ajax cache缓存问题
2010/07/01 Javascript
简单的jquery拖拽排序效果实现代码
2011/09/20 Javascript
JavaScript实现网页上的浮动广告的简单方法
2013/06/14 Javascript
jQuery多个input求和的实现方法
2015/02/12 Javascript
JavaScript使用ActiveXObject访问Access和SQL Server数据库
2015/04/02 Javascript
整理Javascript流程控制语句学习笔记
2015/11/29 Javascript
怎么限制input的text里输入的值只能是数字(正则、js)
2016/05/16 Javascript
JS实现的幻灯片切换显示效果
2016/09/07 Javascript
JavaScript实现经典排序算法之选择排序
2016/12/28 Javascript
详解设置Webstorm 利用babel将ES6自动转码成ES5
2017/12/20 Javascript
基于Vue 2.0的模块化前端 UI 组件库小结
2017/12/21 Javascript
jQuery实现鼠标移到某个对象时弹出显示层功能
2018/08/23 jQuery
js实现图片放大并跟随鼠标移动特效
2019/01/18 Javascript
Python2.6版本中实现字典推导 PEP 274(Dict Comprehensions)
2015/04/28 Python
Python 遍历列表里面序号和值的方法(三种)
2017/02/17 Python
Python 中 function(#) (X)格式 和 (#)在Python3.*中的注意事项
2018/11/30 Python
pandas条件组合筛选和按范围筛选的示例代码
2019/08/26 Python
python实现简单银行管理系统
2019/10/25 Python
Python 利用邮件系统完成远程控制电脑的实现(关机、重启等)
2019/11/19 Python
Django通过json格式收集主机信息
2020/05/29 Python
python中pop()函数的语法与实例
2020/12/01 Python
移动Web—CSS为Retina屏幕替换更高质量的图片
2012/12/24 HTML / CSS
台湾全方位线上课程与职能学习平台:TibaMe
2019/12/04 全球购物
金融事务专业毕业生求职信
2014/02/23 职场文书
学生安全承诺书
2014/05/22 职场文书
预备党员公开承诺书
2014/05/28 职场文书
师德师风个人自我剖析材料
2014/09/27 职场文书
战略性融资合作协议书范本
2014/10/17 职场文书
2014年社区综治工作总结
2014/11/17 职场文书
《包身工》教学反思
2016/02/23 职场文书
少儿励志名言(80句)
2019/08/14 职场文书
聊聊Python String型列表求最值的问题
2022/01/18 Python
详解SQL的窗口函数
2022/04/21 Oracle