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中的Numeric包和Numarray包使用教程
Apr 13 Python
Python错误提示:[Errno 24] Too many open files的分析与解决
Feb 16 Python
在dataframe两列日期相减并且得到具体的月数实例
Jul 03 Python
python3 pygame实现接小球游戏
May 14 Python
Python获取数据库数据并保存在excel表格中的方法
Jun 12 Python
python实现图片中文字分割效果
Jul 22 Python
python装饰器练习题及答案
Nov 01 Python
python tkinter控件布局项目实例
Nov 04 Python
TensorFlow学习之分布式的TensorFlow运行环境
Feb 05 Python
如何使用python传入不确定个数参数
Feb 18 Python
VScode连接远程服务器上的jupyter notebook的实现
Apr 23 Python
keras导入weights方式
Jun 12 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学习之PHP表达式
2006/10/09 PHP
ASP和PHP都是可以删除自身的
2007/04/09 PHP
PHP读书笔记_运算符详解
2016/07/01 PHP
浅谈php中urlencode与rawurlencode的区别
2016/09/05 PHP
PHP对象、模式与实践之高级特性分析
2016/12/08 PHP
一个js控制的导航菜单实例代码
2013/12/03 Javascript
JS判断客户端是手机还是PC的2个代码
2014/04/12 Javascript
CSS3实现动态背景登录框的代码
2015/07/28 Javascript
对jQuary选择器的全面总结
2016/06/20 Javascript
1秒50万字!js实现关键词匹配
2016/08/01 Javascript
Angularjs 制作购物车功能实例代码
2016/09/14 Javascript
JS敏感词过滤代码
2016/12/23 Javascript
Ajax和Comet技术总结
2017/02/19 Javascript
jQuery中hover方法搭配css的hover选择器,实现选中元素突出显示方法
2017/05/08 jQuery
老生常谈javascript的面向对象思想
2017/08/22 Javascript
vue如何解决循环引用组件报错的问题
2018/09/22 Javascript
vue弹出框组件封装实例代码
2019/10/31 Javascript
python基础入门详解(文件输入/输出 内建类型 字典操作使用方法)
2013/12/08 Python
详解python之简单主机批量管理工具
2017/01/27 Python
使用Flask-Cache缓存实现给Flask提速的方法详解
2019/06/11 Python
Python3简单实现串口通信的方法
2019/06/12 Python
Python3分析处理声音数据的例子
2019/08/27 Python
win10下安装Anaconda的教程(python环境+jupyter_notebook)
2019/10/23 Python
使用Python+selenium实现第一个自动化测试脚本
2020/03/17 Python
基于python实现简单C/S模式代码实例
2020/09/14 Python
J2SDK1.5与J2SDK5.0有什么区别
2012/09/19 面试题
致接力运动员广播稿
2014/02/17 职场文书
创建服务型党组织实施方案
2014/02/25 职场文书
岗位廉洁从政承诺书
2014/03/27 职场文书
优秀教师先进材料
2014/12/16 职场文书
给医院的感谢信
2015/01/21 职场文书
2015大学迎新晚会策划书
2015/07/16 职场文书
演讲稿之我的初心我的成长
2019/08/12 职场文书
jquery插件实现搜索历史
2021/04/24 jQuery
MySQL创建管理RANGE分区
2022/04/13 MySQL
python游戏开发之pygame实现接球小游戏
2022/04/22 Python