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
但还是尽量使用迭代器吧,数据量很大的时候不用迭代器的话有可能会占用过多的内存。
相关推荐
坚持是一种品质 2020-11-16
YENCSDN 2020-11-17
lsjweiyi 2020-11-17
houmenghu 2020-11-17
Erick 2020-11-17
HeyShHeyou 2020-11-17
以梦为马不负韶华 2020-10-20
lhtzbj 2020-11-17
夜斗不是神 2020-11-17
pythonjw 2020-11-17
dingwun 2020-11-16
lhxxhl 2020-11-16
染血白衣 2020-11-16
huavhuahua 2020-11-20
meylovezn 2020-11-20
逍遥友 2020-11-20
weiiron 2020-11-16