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通过函数属性实现全局变量的方法
May 16 Python
Python快速排序算法实例分析
Nov 29 Python
浅谈flask截获所有访问及before/after_request修饰器
Jan 18 Python
Python实现一个服务器监听多个客户端请求
Apr 12 Python
python 切换root 执行命令的方法
Jan 19 Python
感知器基础原理及python实现过程详解
Sep 30 Python
Python实现栈和队列的简单操作方法示例
Nov 29 Python
Python json模块与jsonpath模块区别详解
Mar 05 Python
Python中zip函数如何使用
Jun 04 Python
python要安装在哪个盘
Jun 15 Python
keras.utils.to_categorical和one hot格式解析
Jul 02 Python
python 用opencv实现图像修复和图像金字塔
Nov 27 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测试硬盘写入速度示例
2014/01/27 PHP
Referer原理与图片防盗链实现方法详解
2019/07/03 PHP
js三种排序算法分享
2012/08/16 Javascript
jQuery之ajax删除详解
2014/02/27 Javascript
css如何让浮动元素水平居中
2015/08/07 Javascript
javascript发送短信验证码实现代码
2015/11/12 Javascript
利用JS实现页面删除并重新排序功能
2016/12/09 Javascript
Javascript oop设计模式 面向对象编程简单实例介绍
2016/12/13 Javascript
浅谈Vue的基本应用
2016/12/27 Javascript
vue监听滚动事件实现滚动监听
2017/04/11 Javascript
AngularJS 仿微信图片手势缩放的实例
2017/09/28 Javascript
在vue项目中正确使用iconfont的方法
2018/09/28 Javascript
vue如何根据网站路由判断页面主题色详解
2018/11/02 Javascript
详解ES6 Fetch API HTTP请求实用指南
2018/11/14 Javascript
React事件处理的机制及原理
2018/12/03 Javascript
JavaScript使用Math.random()生成简单的验证码
2019/01/21 Javascript
微信小程序实现拖拽功能
2019/09/26 Javascript
基于element-ui封装表单金额输入框的方法示例
2021/01/06 Javascript
python爬虫常用的模块分析
2014/08/29 Python
python实现给字典添加条目的方法
2014/09/25 Python
好用的Python编辑器WingIDE的使用经验总结
2016/08/31 Python
解决使用PyCharm时无法启动控制台的问题
2019/01/19 Python
Django models.py应用实现过程详解
2019/07/29 Python
Python基于pygame实现单机版五子棋对战
2019/12/26 Python
python 调用API接口 获取和解析 Json数据
2020/09/28 Python
Python通过yagmail实现发送邮件代码解析
2020/10/27 Python
人事档案接收函
2014/01/12 职场文书
远程研修随笔感言
2014/02/10 职场文书
新闻学专业大学生职业生涯规划范文
2014/03/02 职场文书
弘扬焦裕禄精神践行三严三实心得体会
2014/10/13 职场文书
大二学年个人总结
2015/03/03 职场文书
收入证明怎么写
2015/06/12 职场文书
初三数学教学反思
2016/02/17 职场文书
详解Html5项目适配系统深色模式方案总结
2021/04/14 HTML / CSS
关于python类SortedList详解
2021/09/04 Python
详解MySql中InnoDB存储引擎中的各种锁
2022/02/12 MySQL