首页 > 编程语言 >Python不同方式正倒序遍历的时间开销

Python不同方式正倒序遍历的时间开销

时间:2024-09-24 23:35:34浏览次数:1  
标签:遍历 reverse Python enumerate li range time 倒序 loop

from timeit import timeit
li = [i for i in range(1000000)]

def for_loop(n):
    # 使用for直接遍历
    ret = 0
    for i in li:
        ret = li[i]

def for_loop_enumerate(n):
    # 使用enumerate进行遍历
    ret = 0
    for idx, i in enumerate(li):
        ret = li[idx]

def reverse_loop(n):
    # 使用reversed生成迭代器进行倒序遍历li
    ret = 0
    for i in reversed(li):
        ret = li[i]

def reverse_range(n):
    # 使用range进行倒序遍历li
    ret = 0
    for i in range(len(li)-1, -1, -1):
        ret = li[i]


for_loop_time = timeit('for_loop(1000000)', setup='from __main__ import for_loop, li', number=100)
for_loop_enumerate_time = timeit('for_loop_enumerate(1000000)', setup='from __main__ import for_loop_enumerate, li', number=100)
reverse_loop_time = timeit('reverse_loop(1000000)', setup='from __main__ import reverse_loop, li', number=100)
reverse_range_time = timeit('reverse_range(1000000)', setup='from __main__ import reverse_range, li', number=100)

print(f"for_loop_time: {for_loop_time}\n\
        for_loop_enumerate_time: {for_loop_enumerate_time}\n\
        reverse_loop_time: {reverse_loop_time}\n\
        reverse_range_time: {reverse_range_time}")
# for_loop_time: 1.3836041999747977
# for_loop_enumerate_time: 2.5846562000224367
# reverse_loop_time: 1.3863778999075294
# reverse_range_time: 1.8969372999854386

可以看到,enumerate会稍微慢点。
reversed和直接遍历没有区别,反而用range倒序遍历的时候满了一点点

注意reversed返回的是个迭代器,不要想着赋值重用(对没错就是我...)

标签:遍历,reverse,Python,enumerate,li,range,time,倒序,loop
From: https://www.cnblogs.com/faf4r/p/18430327

相关文章

  • 【入门岛·第2关】python基础
    目录Python实现wordcountVscode连接InternStudiodebug笔记Python实现wordcountimportstringdefwordcount(text):#去掉标点符号,并将文本转换为小写text=text.translate(str.maketrans('','',string.punctuation)).lower()#按空格分割文本为单词......
  • Anaconda的使用命令,方便python的管理
    pythonpython是世界上最好的编程语言(有杠精,你就对。)python的领域涉及了AI,大数据,网络爬虫,运维,开发等等方面。python的环境由解释器和包组成。1、python的解释器Python解释器是Python环境的本体,也就是python.exe文件。我们需要在环境变量的路径中将python.exe所在的目录添加上,这......
  • python--数据处理分析模块pandas
    一、什么是pandas?Pandas是基于Numpy的一套数据分析工具,该工具是为了解决数据分析任务而创建的。Pandas纳入了大量标准的数据模型,提供了高效地操作大型数据集所需的工具。Pandas提供了大量能使我们快速便捷地处理数据的函数和方法。它是使Python成为强大而高效的数据......
  • 头歌实践教学平台 Python程序设计 实训答案(三)
    第七阶段文件实验一文本文件的读取第1关:学习-Python文件之文本文件的读取任务描述本关任务:使用open函数以只写的方式打开文件,打印文件的打开方式。相关知识为了完成本关任务,你需要掌握:文本文件;open函数及其参数;文件打开模式;文件对象常用属性;关闭文件close......
  • python如何实现日期加减
    首先通过importdatetime,导入日期处理库。然后把日期转化成datetime标准格式,使用datetime.datetime.strptime()方法将字符串格式的时间转化为标准格式。其中"%Y/%m/%d%H:%M:%S"为time字符串的时间格式:Y为年,m为月,d为天,H为小时,M为分钟,S为秒。如果我们要加的时间是天......
  • Python实现图形学光照和着色的Gouraud着色算法
    目录使用Python实现图形学光照和着色的Gouraud着色算法引言1.Gouraud着色算法概述1.1算法原理2.Python实现Gouraud着色算法2.1向量类2.2光源类2.3材质类2.4Gouraud着色器类2.5使用示例3.实例分析4.Gouraud着色算法的优缺点4.1优点4.2缺点5.改进方向6.应......
  • Python实现Phong着色模型算法
    目录使用Python实现Phong着色模型算法引言Phong着色模型的基本原理1.模型组成2.公式Phong着色模型的Python实现1.向量类的实现2.光源类的实现3.材质类的实现4.Phong着色器类的实现整体实现总结使用Python实现Phong着色模型算法引言在计算机图形学中,光照和......
  • 头歌实践教学平台 Python程序设计实训答案(二)
    第四阶段组合数据类型实验一列表的基本操作第1关:列表增删改:客人名单的变化任务描述列表是由按一定顺序排列的元素组成,其中的元素根据需要可能会发生变化。其中,列表元素的添加、删除或修改等是最常见的操作。下面以一则请客的故事来说明列表元素操作的应用场景。有个人邀......
  • 1、A+B(python语法格式,模块,主模块等)
    总结:python有许多模块,通过import引入模块,或者使用from从模块导入函数#导入math模块importmath#使用模块中的定义的变量或者函数的语法格式为:模块.变量/函数print(math.sqrt(25))#使用math模块中的sqrt函数,表示开平方根#从math模块中导入sqrtfrommathimpor......
  • 【Python学习笔记】字符串
    目录1.定义字符串2.基本操作2.1索引:2.2访问单个字符:2.3访问范围内字符:2.4单个字符编码3.转义符4.运算符5.格式化6.常用字符串函数6.1查找类函数6.2分割类函数6.3字符串连接方法6.4大小写字符转换方法6.5替换方法6.6删除字符串两端、右端或左端连续空白字符......