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标准库之循环器(itertools)介绍
Nov 25 Python
python实现的简单抽奖系统实例
May 22 Python
python实现将html表格转换成CSV文件的方法
Jun 28 Python
利用PyCharm Profile分析异步爬虫效率详解
May 08 Python
window7下的python2.7版本和python3.5版本的opencv-python安装过程
Oct 24 Python
Python openpyxl模块原理及用法解析
Jan 19 Python
Python读取JSON数据操作实例解析
May 18 Python
Python logging模块异步线程写日志实现过程解析
Jun 30 Python
解决selenium+Headless Chrome实现不弹出浏览器自动化登录的问题
Jan 09 Python
详解用 python-docx 创建浮动图片
Jan 24 Python
tensorflow2.0教程之Keras快速入门
Feb 20 Python
Python+Appium自动化测试的实战
Jun 30 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.MVC的模板标签系统(二)
2006/09/05 PHP
探讨:array2xml和xml2array以及xml与array的互相转化
2013/06/24 PHP
取得单条网站评论以数组形式进行输出
2014/07/28 PHP
php文件扩展名判断及获取文件扩展名的N种方法
2015/09/12 PHP
PHP 获取客户端 IP 地址的方法实例代码
2018/11/11 PHP
laravel 创建命令行命令的图文教程
2019/10/23 PHP
jQuery入门知识简介
2010/03/04 Javascript
javascript读写XML实现广告轮换(兼容IE、FF)
2013/08/09 Javascript
引用 js在IE与FF之间的区别详细解析
2013/11/20 Javascript
jquery ajax,ashx,json的用法总结
2014/02/12 Javascript
你不知道的高性能JAVASCRIPT
2016/01/18 Javascript
jQuery Pagination分页插件使用方法详解
2017/02/28 Javascript
详解前后端分离之VueJS前端
2017/05/24 Javascript
jQuery实现表单动态加减、ajax表单提交功能
2018/06/08 jQuery
微信小程序实现时间预约功能
2018/11/27 Javascript
React 实现车牌键盘的示例代码
2019/12/20 Javascript
react项目从新建到部署的实现示例
2021/02/19 Javascript
[51:26]DOTA2上海特级锦标赛主赛事日 - 2 胜者组第一轮#3Secret VS OG第二局
2016/03/03 DOTA
python目录操作之python遍历文件夹后将结果存储为xml
2014/01/27 Python
Python检测一个对象是否为字符串类的方法
2015/05/21 Python
CentOS中升级Python版本的方法详解
2017/07/10 Python
python实现数据导出到excel的示例--普通格式
2018/05/03 Python
Django中数据库的数据关系:一对一,一对多,多对多
2018/10/21 Python
python opencv 简单阈值算法的实现
2019/08/04 Python
基于python 凸包问题的解决
2020/04/16 Python
三星印度官网:Samsung印度
2019/08/03 全球购物
新加坡第一大健康与美容零售商:屈臣氏新加坡(Watsons Singapore)
2020/12/11 全球购物
某公司的.net工程师面试题笔试题
2013/11/22 面试题
Internet主要有哪些网络群组成
2015/12/24 面试题
客户服务经理岗位职责
2014/01/29 职场文书
学习保证书
2015/01/17 职场文书
2015年行政工作总结范文
2015/04/09 职场文书
企业工会工作总结2015
2015/05/13 职场文书
python scipy 稀疏矩阵的使用说明
2021/05/26 Python
vue route新窗口跳转页面并且携带与接收参数
2022/04/10 Vue.js
APP界面设计技巧和注意事项
2022/04/29 杂记