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神经网络使用tensorflow构建长短时记忆LSTM

    python神经网络使用tensorflow构建长短时记忆LSTM

    这篇文章主要为大家介绍了python机器学习tensorflow构建长短时记忆网络LSTM,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-05-05
  • Python2及Python3如何实现兼容切换

    Python2及Python3如何实现兼容切换

    这篇文章主要介绍了Python2及Python3如何实现兼容切换,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-09-09
  • Python实用技巧之列表、字典、集合中根据条件筛选数据详解

    Python实用技巧之列表、字典、集合中根据条件筛选数据详解

    这篇文章主要给大家介绍了关于Python技巧之在列表、字典、集合中根据条件筛选数据的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面来一起看看吧
    2018-07-07
  • 树莓派动作捕捉抓拍存储图像脚本

    树莓派动作捕捉抓拍存储图像脚本

    这篇文章主要为大家详细介绍了树莓派动作捕捉抓拍存储图像脚本,支持Python 2.7,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-06-06
  • 在Python中使用SQLite的简单教程

    在Python中使用SQLite的简单教程

    这篇文章主要介绍了在Python中使用SQLite的简单教程,SQLite作为嵌入式数据库被内置于历代Python版本中,需要的朋友可以参考下
    2015-04-04
  • 利用Python编写一个注册机用于生成卡密

    利用Python编写一个注册机用于生成卡密

    这篇文章主要为大家详细介绍了如何利用Python编写一个注册机用于生成卡密(兑换码),并使用这些卡密登录应用程序,感兴趣的小伙伴可以了解下
    2023-11-11
  • Python+MySQL随机试卷及答案生成程序的示例代码

    Python+MySQL随机试卷及答案生成程序的示例代码

    这篇文章主要介绍了Python+MySQL随机试卷及答案生成程序的示例代码,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-02-02
  • python aeon库进行时间序列算法预测分类实例探索

    python aeon库进行时间序列算法预测分类实例探索

    这篇文章主要介绍了python aeon库进行时间序列算法预测分类实例探索,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2024-02-02
  • python openssl模块安装及用法

    python openssl模块安装及用法

    在本篇文章里小编给大家整理的是一篇关于python openssl模块安装及用法,有需要的朋友们可以学习下。
    2020-12-12
  • Python 获取指定开头指定结尾所夹中间内容(推荐)

    Python 获取指定开头指定结尾所夹中间内容(推荐)

    获取文章中指定开头、指定结尾中所夹的内容。其中,开头和结尾均有多种,但最多也就十几种,所以代码还是具有可行性的,今天小编给大家介绍通过Python 获取指定开头指定结尾所夹中间内容,感兴趣的朋友一起看看吧
    2023-02-02

最新评论