列表倒序输出 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

因为要先倒序,再循环,所以效率会比较低。

方法四

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

时间: 2020-03-02

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值