Python列表倒序输出及其效率详解

 更新时间:2020年03月04日 08:35:38   作者:ccneko  
在本篇文章里小编给大家整理的是关于Python列表倒序输出及其效率详解内容,需要的朋友们学习下。

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)

对比结果

数组长度为一百万时(跑了三次):

数组长度为一千万时(跑了两次):

数组长度为一亿时(跑了两次):

结论

效率:方法一 > 方法二 > 方法三 > 方法四

然而并不差多少emmm

但还是尽量使用迭代器吧,数据量很大的时候不用迭代器的话有可能会占用过多的内存。

到此这篇关于Python列表倒序输出及其效率详解的文章就介绍到这了,更多相关Python列表倒序输出及其效率内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • python用faker库批量生成假数据

    python用faker库批量生成假数据

    这篇文章主要介绍了python用faker库批量生成假数据,帮助大家更好的理解和学习使用python,感兴趣的朋友可以了解下
    2021-03-03
  • python multiprocessing模块用法及原理介绍

    python multiprocessing模块用法及原理介绍

    这篇文章主要介绍了python multiprocessing模块用法及原理介绍,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-08-08
  • Python3二分查找库函数bisect(),bisect_left()和bisect_right()的区别

    Python3二分查找库函数bisect(),bisect_left()和bisect_right()的区别

    这篇文章主要介绍了Python3二分查找库函数bisect(),bisect_left()和bisect_right()的区别,本文通过示例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-03-03
  • 基于python历史天气采集的分析

    基于python历史天气采集的分析

    今天小编就为大家分享一篇基于python历史天气采集的分析,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-02-02
  • Python利用装饰器实现类似于flask路由

    Python利用装饰器实现类似于flask路由

    这篇文章主要为大家详细介绍了Python如何利用装饰器实现类似于flask路由,文中的示例代码讲解详细,对我们深入了解Python有一点的帮助,感兴趣的可以了解一下
    2023-02-02
  • python和shell实现的校验IP地址合法性脚本分享

    python和shell实现的校验IP地址合法性脚本分享

    这篇文章主要介绍了python和shell实现的校验IP地址合法性脚本分享,每个脚本配有执行效果图,需要的朋友可以参考下
    2014-10-10
  • python创建字典(dict)的几种方法小结(含代码示例)

    python创建字典(dict)的几种方法小结(含代码示例)

    字典(Dictionary)是Python中一种非常灵活的数据结构,用于存储键值对(key-value pairs),在Python中创建字典有多种方法,每种方法都有其特定的使用场景和优势,本文将详细介绍Python中创建字典的几种常见方法,需要的朋友可以参考下
    2024-09-09
  • YOLOv5车牌识别实战教程(三)模型训练与评估

    YOLOv5车牌识别实战教程(三)模型训练与评估

    这篇文章主要介绍了YOLOv5车牌识别实战教程(三)模型训练与评估,在这个教程中,我们将一步步教你如何使用YOLOv5进行车牌识别,帮助你快速掌握YOLOv5车牌识别技能,需要的朋友可以参考下
    2023-04-04
  • 重写django的model下的objects模型管理器方式

    重写django的model下的objects模型管理器方式

    这篇文章主要介绍了重写django的model下的objects模型管理器方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-05-05
  • Python中使用HTMLParser解析html实例

    Python中使用HTMLParser解析html实例

    这篇文章主要介绍了Python中使用HTMLParser解析html实例,本文直接给出使用示例,并总结出HTMLParser含有的方法分为两类,一类是需要显式调用的,而另一类不需显示调用,需要的朋友可以参考下
    2015-02-02

最新评论