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实现端口复用实例代码
Jul 03 Python
Python压缩和解压缩zip文件
Feb 14 Python
python中split方法用法分析
Apr 17 Python
Python Paramiko模块的安装与使用详解
Nov 18 Python
利用python获取某年中每个月的第一天和最后一天
Dec 15 Python
python操作MySQL 模拟简单银行转账操作
Sep 27 Python
python列表的增删改查实例代码
Jan 30 Python
Python发送邮件功能示例【使用QQ邮箱】
Dec 04 Python
详解pandas库pd.read_excel操作读取excel文件参数整理与实例
Feb 17 Python
python flask安装和命令详解
Apr 02 Python
python tkinter图形界面代码统计工具(更新)
Sep 18 Python
django日志默认打印request请求信息的方法示例
May 17 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持久连接mysql_pconnect()函数使用介绍
2012/02/05 PHP
php面向对象中的魔术方法中文说明
2014/03/04 PHP
WordPress中自定义后台管理界面配色方案的小技巧
2015/12/29 PHP
PHP使用redis位图bitMap 实现签到功能
2019/10/08 PHP
Javascript中获取出错代码所在文件及行数的代码
2010/09/23 Javascript
javascript处理table表格的代码
2010/12/06 Javascript
js中的数组Array定义与sort方法使用示例
2013/08/29 Javascript
jQuery响应enter键的实现思路
2014/04/18 Javascript
Javascript仿PHP $_GET获取URL中的参数
2014/05/12 Javascript
JQuery鼠标移到小图显示大图效果的方法
2015/06/10 Javascript
js实现tab切换效果实例
2015/09/16 Javascript
js评分组件使用详解
2017/06/06 Javascript
微信小程序云函数使用mysql数据库过程详解
2019/08/07 Javascript
JavaScript类的继承多种实现方法
2020/05/30 Javascript
JavaScript编码小技巧分享
2020/09/17 Javascript
[36:43]NB vs Optic 2018国际邀请赛小组赛BO1 B组加赛 8.19
2018/08/21 DOTA
[01:08:43]DOTA2-DPC中国联赛定级赛 Phoenix vs DLG BO3第一场 1月9日
2021/03/11 DOTA
Python中使用Tkinter模块创建GUI程序实例
2015/01/14 Python
python使用nntp读取新闻组内容的方法
2015/05/08 Python
Python中实现变量赋值传递时的引用和拷贝方法
2018/04/29 Python
解决Windows下python和pip命令无法使用的问题
2020/08/31 Python
python3中for循环踩过的坑记录
2020/12/14 Python
termux中matplotlib无法显示中文问题的解决方法
2021/01/11 Python
做一个能自适应高度的textarea的示例代码
2019/09/06 HTML / CSS
理肤泉俄罗斯官网:La Roche-Posay俄罗斯
2018/07/24 全球购物
node中使用shell脚本的方法步骤
2021/03/23 Javascript
优秀团队获奖感言
2014/02/19 职场文书
2014年单位植树节活动方案
2014/03/23 职场文书
《最大的麦穗》教学反思
2014/04/17 职场文书
从严治党主题教育活动总结
2015/05/07 职场文书
职工趣味运动会开幕词
2016/03/04 职场文书
nginx简单配置多个server的方法
2021/03/31 Servers
pytorch 带batch的tensor类型图像显示操作
2021/05/20 Python
python如何利用traceback获取详细的异常信息
2021/06/05 Python
Django路由层如何获取正确的url
2021/07/15 Python
业余无线电通联Q语
2022/02/18 无线电