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的Django框架中TEMPLATES项的设置教程
May 29 Python
python简单分割文件的方法
Jul 30 Python
Python读取和处理文件后缀为.sqlite的数据文件(实例讲解)
Jun 27 Python
Python实现自动发送邮件功能
Mar 02 Python
对Python3.6 IDLE常用快捷键介绍
Jul 16 Python
TensorFlow打印tensor值的实现方法
Jul 27 Python
pyshp创建shp点文件的方法
Dec 31 Python
Python 数据库操作 SQLAlchemy的示例代码
Feb 18 Python
使用Python制作表情包实现换脸功能
Jul 19 Python
简单易懂Pytorch实战实例VGG深度网络
Aug 27 Python
python 下载m3u8视频的示例代码
Nov 11 Python
python tqdm库的使用
Nov 30 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中防止SQL注入最好的方法是什么
2013/06/10 PHP
PHP中常见的缓存技术实例分析
2015/09/23 PHP
合格的PHP程序员必备技能
2015/11/13 PHP
PHP将整数数字转换为罗马数字实例分享
2019/03/17 PHP
js 异步处理进度条
2010/04/01 Javascript
cookie的复制与使用记住用户名实现代码
2013/11/04 Javascript
JQEasy-ui在IE9以下版本中二次加载的问题分析及处理方法
2014/06/23 Javascript
Javascript模块化编程详解
2014/12/01 Javascript
Bootstrap每天必学之表格
2015/11/23 Javascript
JavaScript表单验证实例之验证表单项是否为空
2016/01/10 Javascript
Javascript从数组中随机取出不同元素的两种方法
2016/09/22 Javascript
前端框架学习总结之Angular、React与Vue的比较详解
2017/03/14 Javascript
详解Vue2 SSR 缓存 Api 数据
2017/11/20 Javascript
详解VUE中常用的几种import(模块、文件)引入方式
2018/07/03 Javascript
使用iView Upload 组件实现手动上传图片的示例代码
2018/10/01 Javascript
vue+webpack中配置ESLint
2018/11/07 Javascript
Vue开发之封装上传文件组件与用法示例
2019/04/25 Javascript
vue props 一次传多个值实例
2020/07/22 Javascript
JavaScript代码模拟鼠标自动点击事件示例
2020/08/07 Javascript
详解JavaScript原型与原型链
2020/11/16 Javascript
[54:57]DOTA2-DPC中国联赛定级赛 Aster vs DLG BO3第二场 1月8日
2021/03/11 DOTA
python用于url解码和中文解析的小脚本(python url decoder)
2013/08/11 Python
Python中的列表生成式与生成器学习教程
2016/03/13 Python
python 连接sqlite及简单操作
2017/06/30 Python
pygame实现俄罗斯方块游戏
2018/06/26 Python
Python如何基于rsa模块实现非对称加密与解密
2020/01/03 Python
html5 viewport使用方法示例详解
2013/12/02 HTML / CSS
Canvas制作旋转的太极的示例
2018/03/09 HTML / CSS
美国香薰蜡烛品牌:PADDYWAX
2018/10/06 全球购物
Bibloo罗马尼亚网站:女装、男装、童装及鞋子和配饰
2019/07/20 全球购物
开水果连锁店创业计划书
2013/12/29 职场文书
如何写好升职自荐信
2014/01/06 职场文书
住院医师规范化培训实施方案
2014/06/12 职场文书
工作期间打牌检讨书范文
2014/11/20 职场文书
优秀党员事迹材料
2014/12/18 职场文书
Python开发简易五子棋小游戏
2022/05/02 Python