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列表倒序输出及其效率内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Python给定一个句子倒序输出单词以及字母的方法

    如下所示: #!/usr/bin/python # -*- coding: utf-8 -*- def rever(sentence): newwords = [] words = sentence.split() words.reverse() space = ' '#单词之间一个间隔 for word in words: newword = [] new = ''#单词的字母间无间隔 l = len(word) for i in range(l): newword.append(word[l

  • python解决字符串倒序输出的问题

    如下所示: #python解决字符串倒序输出 def string_reverse(m): num=len(m) a=[] for i in range(num): a.append(m[num-1-i])#从最后一位的元素开始往新list内添加元素 return a 以上这篇python解决字符串倒序输出的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们.

  • 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 因为要先倒序,

  • Python 列表与链表的区别详解

    目录 python 列表和链表的区别 列表的实现机制 链表 链表与列表的差异 python 列表和链表的区别 python 中的 list 并不是我们传统意义上的列表,传统列表--通常也叫作链表(linked list)是由一系列节点来实现的,其中每个节点都持有一个指向下一节点的引用. class Node: def __init__(self, value, next=None): self.value = value self.next = next 接下来,我们就可以将所有的节点构造成一个

  • Python实现格式化输出的实例详解

    目录 一.format格式输出字符串 二.format格式输出字符串实例 实例1.网站名称 实例2.数值格式化为不同的形式 实例3.{}中不设参数 实例4. {}中设参数 实例5.str.format() 格式化数字 三.%格式化输出实例 实例3.1.整数的输出 实例3.2. 浮点数输出 实例3.3.字符串输出 实例3.4.格式化输出用户信息 四.完整程序 一.format格式输出字符串 使用 % 操作符对各种类型的数据进行格式化输出,这是早期 Python提供的方法. 字符串类型(str)提供

  • python列表生成器常用迭代器示例详解

    目录 列表生成式基础语法 1. 使用列表生成式,一行解决for循环 2. 双层循环 3. 加判断语句,条件过滤 4. 加入函数 5. 常见几种迭代器:range. zip . enumerate . filter . reduce 列表生成式基础语法 [exp for iter_var in iterable (if conditional)] 原理: 首先迭代 iterable 里所有内容,每一次迭代,都把iterable里相应的内容放在iter_var中,再把表达式exp应用该iter_va

  • Python列表append()函数使用方法详解

    目录 1. 基本使用 2. 任意类型元素 3. 列表同步 3.1 原理剖析 3.2 解决方案 4. append()与extend()的区别 总结 1. 基本使用 append() 函数可以向列表末尾添加元素 语法 list.append( element ) 参数 element:任何类型的元素 实例:向列表末尾添加一个元素 name_list = ['zhangsan', 'lisi', 'wangwu'] name_list.append('zhaoliu') print(name_lis

  • Python列表与元组的异同详解

    前言 "列表(list)与元组(tuple)两种数据类型有哪些区别"这个问题在初级程序员面试中经常碰到,超出面试官预期的答案往往能加不少印象分,也会给后续面试顺利进行提供一定帮助,这道题主要考察候选人对Python基本数据结构的掌握程度,属于简单类型的送分题,那么该如何来回答才不至于丢分? 相同点:都是序列类型 回答它们的区别之前,先来说说两者有什么相同之处.list 与 tuple 都是序列类型的容器对象,可以存放任何类型的数据.支持切片.迭代等操作 >>> foo

  • Python的输入,输出和标识符详解

    目录 一.标识符 命名要规范: 需要注意以下两点: 二.input(输入) 三.print(输出) 总结 一.标识符 何为标识符? 标识符是用来标识某个实体的一个符号.在编程语言中,标识符是计算机语言中作为名字的有效字符串集合.标识符是用户编程时使用的名字,变量.常量.函数.语句块也有名字,他们的名字成为标识符. 标识符的注意事项: 1.由数字.字母.下划线组成,不能以数字开头,代码如下: 1_username = 'Lisi' # 以数字开头的标识符会直接报错 2. 严格区分大小写 name

  • python操作列表的函数使用代码详解

    python的列表很重要,学习到后面你会发现使用的地方真的太多了.最近在写一些小项目时经常用到列表,有时其中的方法还会忘哎! 所以为了复习写下了这篇博客,大家也可以来学习一下,应该比较全面和详细了 列表(list): 用来存放相同或者不同元素(字符)用逗号隔开的一个存储方式. list我个人认为最重要的有一点大家可能都容易忽略那就是复制列表,这点文章最后来讲解 定义三个列表的样例 lis = [1, 2, 3, 4, 5, 6] lis = ['a', 'b', 'c', 'd'] lis =

  • Python学习之列表和元组的使用详解

    目录 列表和元组简介 列表学习要点 列表的声明语法 列表的读取 列表操作 列表元素的修改和删除 列表元素合并 列表元素顺序变化 元组学习要点 元组基本知识 元组的基本操作 列表和元组简介 如果说在 Python 语言中找一个最优秀的数据类型,那无疑是列表,如果要在推荐一个,那我选择元组,本篇博客我们的重心会放在列表上,元组可以看成不能被修改的列表,所以作为赠品 进行学习即可. 列表是一种非常灵活的数据结构,可以弥补前文字符串类型的很多不足. 正式学习前,还需要记住两个英文单词,列表(list),

  • 对python的输出和输出格式详解

    输出 1. 普通的输出 # 打印提示 print('hello world') 用print()在括号中加上字符串,就可以向屏幕上输出指定的文字.比如输出'hello, world',用代码实现如下: >>> print('hello, world') print()函数也可以接受多个字符串,用逗号","隔开,就可以连成一串输出: >>> print('The quick brown fox', 'jumps over', 'the lazy dog

随机推荐