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)