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 相关文章推荐
Python3基础之基本运算符概述
Aug 13 Python
python简单获取本机计算机名和IP地址的方法
Jun 03 Python
对Python协程之异步同步的区别详解
Feb 19 Python
Django Rest framework频率原理与限制
Jul 26 Python
python Elasticsearch索引建立和数据的上传详解
Aug 04 Python
python 实现多线程下载m3u8格式视频并使用fmmpeg合并
Nov 15 Python
Python中如何将一个类方法变为多个方法
Dec 30 Python
在django admin详情表单显示中添加自定义控件的实现
Mar 11 Python
Django中ORM的基本使用教程
Dec 22 Python
给numpy.array增加维度的超简单方法
Jun 02 Python
pytorch分类模型绘制混淆矩阵以及可视化详解
Apr 07 Python
python中的random模块和相关函数详解
Apr 22 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
Laravel中扩展Memcached缓存驱动实现使用阿里云OCS缓存
2015/02/10 PHP
Yii数据库缓存实例分析
2016/03/29 PHP
如何正确配置Nginx + PHP
2016/07/15 PHP
PHP自动载入类文件函数__autoload的使用方法
2019/03/25 PHP
从盛大通行证上摘下来的身份证验证js代码
2011/01/11 Javascript
jquery与js函数冲突的两种解决方法
2013/09/09 Javascript
使用JavaScript判断图片是否加载完成的三种实现方式
2014/05/04 Javascript
jQuery实现的Div窗口震动特效
2014/06/09 Javascript
改变状态栏文字的js代码
2014/06/13 Javascript
超链接的禁用属性Disabled使用示例
2014/07/31 Javascript
写给小白的JavaScript引擎指南
2015/12/04 Javascript
编写高质量JavaScript代码的基本要点
2016/03/02 Javascript
Ajax的概述与实现过程
2016/11/18 Javascript
Bootstrap table表格简单操作
2017/02/07 Javascript
jQuery滚动监听实现商城楼梯式导航效果
2017/03/06 Javascript
JS组件系列之MVVM组件构建自己的Vue组件
2017/04/28 Javascript
详解基于vue的移动web app页面缓存解决方案
2017/08/03 Javascript
jQuery使用动画队列自定义动画操作示例
2018/06/16 jQuery
对Vue2 自定义全局指令Vue.directive和指令的生命周期介绍
2018/08/30 Javascript
使用JavaScrip模拟实现仿京东搜索框功能
2019/10/16 Javascript
JS实现省市县三级下拉联动
2020/04/10 Javascript
跟老齐学Python之折腾一下目录
2014/10/24 Python
Python抓取淘宝下拉框关键词的方法
2015/07/08 Python
Python3 处理JSON的实例详解
2017/10/29 Python
python内置数据类型之列表操作
2018/11/12 Python
浅谈python之高阶函数和匿名函数
2019/03/21 Python
python使用flask与js进行前后台交互的例子
2019/07/19 Python
PyTorch中torch.tensor与torch.Tensor的区别详解
2020/05/18 Python
HTML5 DeviceOrientation实现手机网站摇一摇功能代码实例
2015/04/24 HTML / CSS
What is EJB
2016/07/22 面试题
如果有两个类A,B,怎么样才能使A在发生一个事件的时候通知B
2016/03/12 面试题
学习党的群众路线教育实践活动心得体会范文
2014/11/03 职场文书
公司员工管理制度
2015/08/04 职场文书
pandas取dataframe特定行列的实现方法
2021/05/24 Python
Go语言的协程上下文的几个方法和用法
2022/04/11 Golang
Java中生成微信小程序太阳码的实现方案
2022/06/01 Java/Android