gpt4 book ai didi

python - 为什么手动字符串反转比 Python 2.7 中的切片反转更糟糕? Slice 中使用的算法是什么?

转载 作者:太空狗 更新时间:2023-10-30 00:40:31 25 4
gpt4 key购买 nike

下面是Slice和手动逆向操作的性能差异。如果是这样,那是什么原因?

timeit.timeit("a[::-1]","a=[1,2,3,4,5,6]",number=100)
6.054327968740836e-05

timeit.timeit("[a[i] for i in range(len(a)-1,-1,-1)]","a=[1,2,3,4,5,6]",number=100)
0.0003132152330920235

最佳答案

这是字节码

from dis import dis
a = [1,2,3,4,5,6]

def func1():
a[::-1]

def func2():
[a[i] for i in range(len(a)-1,-1,-1)]

def func3():
reversed(a)

在第二种方法中,您要找到长度,创建具有范围的副本并创建变量 i。

bytecode

也可以使用 reversed 来创建一个 iterable。

bytecode2

关于python - 为什么手动字符串反转比 Python 2.7 中的切片反转更糟糕? Slice 中使用的算法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25258549/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com