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求pi的方法
Oct 08 Python
详解Python中DOM方法的动态性
Apr 11 Python
Python基于sftp及rsa密匙实现远程拷贝文件的方法
Sep 21 Python
Python实现对一个函数应用多个装饰器的方法示例
Feb 09 Python
numpy matrix和array的乘和加实例
Jun 28 Python
用python做游戏的细节详解
Jun 25 Python
详解python中的生成器、迭代器、闭包、装饰器
Aug 22 Python
Python3并发写文件与Python对比
Nov 20 Python
Matplotlib使用字符串代替变量绘制散点图的方法
Feb 17 Python
详解pytorch中squeeze()和unsqueeze()函数介绍
Sep 03 Python
用pushplus+python监控亚马逊到货动态推送微信
Jan 29 Python
python用字节处理文件实例讲解
Apr 13 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中文汉字验证码
2007/04/08 PHP
PHP5中虚函数的实现方法分享
2011/04/20 PHP
PHP date()函数警告: It is not safe to rely on the system解决方法
2014/08/20 PHP
使用正则去除php代码中的注释方法
2016/11/03 PHP
PHP未登录自动跳转到登录页面
2016/12/21 PHP
PHP实现微信申请退款功能
2018/10/01 PHP
PHP二维数组分页2种实现方法解析
2020/07/09 PHP
jQuery 使用手册(一)
2009/09/23 Javascript
javascript 广告后加载,加载完页面再加载广告
2010/11/25 Javascript
javascript函数以及基础写法100多条实用整理
2013/01/13 Javascript
利用jQuery的deferred对象实现异步按顺序加载JS文件
2013/03/17 Javascript
五种js判断是否为整数类型方式
2015/12/03 Javascript
JavaScript模版引擎的基本实现方法浅析
2016/02/15 Javascript
DOM操作和jQuery实现选项移动操作的简单实例
2016/06/07 Javascript
jQuery查看选中对象HTML代码的方法
2016/06/17 Javascript
AngularJS入门教程之 XMLHttpRequest实例讲解
2016/07/27 Javascript
Bootstrap 填充Json数据的实例代码
2017/01/11 Javascript
详谈angularjs中路由页面强制更新的问题
2017/04/24 Javascript
简单实现js鼠标跟随效果
2020/08/02 Javascript
JS库之ParticlesJS使用简介
2017/09/12 Javascript
详解vue组件开发脚手架
2018/06/15 Javascript
基于Element封装一个表格组件tableList的使用方法
2020/06/29 Javascript
Python中的一些陷阱与技巧小结
2015/07/10 Python
Python验证码识别处理实例
2015/12/28 Python
Python实现针对给定单链表删除指定节点的方法
2018/04/12 Python
python 实现识别图片上的数字
2019/07/30 Python
wxPython实现绘图小例子
2019/11/19 Python
Python列表嵌套常见坑点及解决方案
2020/09/30 Python
Pandas替换及部分替换(replace)实现流程详解
2020/10/12 Python
Pandas DataFrame求差集的示例代码
2020/12/13 Python
Expedia马来西亚旅游网站:廉价酒店,度假村和航班预订
2016/07/26 全球购物
意大利男装网店:Vrients
2019/05/02 全球购物
东南亚冒险旅行与活动:Adventoro
2019/10/16 全球购物
Timberland法国官网:购买靴子、鞋子、衣服、夹克和配饰
2019/11/30 全球购物
学习雷锋活动总结
2014/04/29 职场文书
2016年学校党支部创先争优活动总结
2016/04/05 职场文书