log*_*kal 5 python timeit slice python-2.7
低于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
Run Code Online (Sandbox Code Playgroud)
这是字节码
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)
Run Code Online (Sandbox Code Playgroud)
在第二种方法中,您将找到长度,创建带范围的副本并创建变量i.

也可以使用reverse来创建一个可迭代的.

| 归档时间: |
|
| 查看次数: |
585 次 |
| 最近记录: |