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函数中的默认参数
Mar 30 Python
Python中的数据对象持久化存储模块pickle的使用示例
Mar 03 Python
python中set常用操作汇总
Jun 30 Python
Python使用re模块正则提取字符串中括号内的内容示例
Jun 01 Python
Pandas 按索引合并数据集的方法
Nov 15 Python
python  文件的基本操作 菜中菜功能的实例代码
Jul 17 Python
Python基于Dlib的人脸识别系统的实现
Feb 26 Python
matlab中二维插值函数interp2的使用详解
Apr 22 Python
Django 设置admin后台表和App(应用)为中文名的操作方法
May 10 Python
详解如何在PyCharm控制台中输出彩色文字和背景
Aug 17 Python
python反扒机制的5种解决方法
Feb 06 Python
python 如何将两个实数矩阵合并为一个复数矩阵
May 19 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面向对象全攻略 (五) 封装性
2009/09/30 PHP
php中is_null,empty,isset,unset 的区别详细介绍
2013/04/28 PHP
php写的AES加密解密类分享
2014/06/20 PHP
PHP实现简易计算器功能
2020/08/28 PHP
javascript Prototype 对象扩展
2009/05/15 Javascript
从数组中随机取x条不重复数据的JS代码
2013/12/24 Javascript
JQuery为页面Dom元素绑定事件及解除绑定方法
2014/04/23 Javascript
jQuery+ajax实现鼠标单击修改内容的方法
2014/06/27 Javascript
jquery取子节点及当前节点属性值的方法
2014/09/09 Javascript
jquery实现浮动在网页右下角的彩票开奖公告窗口代码
2015/09/04 Javascript
Vue.js开发环境搭建
2016/11/10 Javascript
微信小程序 scroll-view实现上拉加载与下拉刷新的实例
2017/01/21 Javascript
基于JavaScript实现无限加载瀑布流
2017/07/21 Javascript
vue cli构建的项目中请求代理与项目打包问题
2018/02/26 Javascript
Vue2.0系列之过滤器的使用
2018/03/01 Javascript
vue实现的微信机器人聊天功能案例【附源码下载】
2019/02/18 Javascript
微信小程序如何通过用户授权获取手机号(getPhoneNumber)
2020/01/21 Javascript
创建nuxt.js项目流程图解
2020/03/13 Javascript
js this 绑定机制深入详解
2020/04/30 Javascript
python写的一个squid访问日志分析的小程序
2014/09/17 Python
简单的抓取淘宝图片的Python爬虫
2014/12/25 Python
python实现TF-IDF算法解析
2018/01/02 Python
对pandas中Series的map函数详解
2018/07/25 Python
Python进阶之全面解读高级特性之切片
2019/02/19 Python
快速解决pyqt5窗体关闭后子线程不同时退出的问题
2019/06/19 Python
Python requests.post方法中data与json参数区别详解
2020/04/30 Python
一文带你了解Python 四种常见基础爬虫方法介绍
2020/12/04 Python
使用CSS3的font-face字体嵌入样式的方法讲解
2016/05/13 HTML / CSS
Html5内唤醒百度、高德APP的实现示例
2019/05/20 HTML / CSS
德国电子商城:ComputerUniverse
2017/04/21 全球购物
大学四年职业生涯规划书范文
2014/01/02 职场文书
后备干部培训方案
2014/05/22 职场文书
社区爱国卫生月活动总结
2014/06/30 职场文书
人口与计划生育目标管理责任书
2014/07/29 职场文书
春秋淹城导游词
2015/02/11 职场文书
合作意向书怎么写
2019/06/24 职场文书