Ash*_*ngh 1 python string string-matching
我能够提出两种不同的方法来反转Python中的字符串.
Commonsense规定代码行越多,运行速度越慢.
我做了以下几行代码:
代码1
"".join(reversed(map(lambda x:x,st)))
Run Code Online (Sandbox Code Playgroud)
码2
st[::-1]
Run Code Online (Sandbox Code Playgroud)
这些表现相似.对于一个20000长的字符串,我无法看到甚至一毫秒的性能差异.
我认为第一个应该是一个较慢的方法,因为它执行了3倍以上的操作.
题
为什么我没有看到性能差异?
Die*_*Epp 13
我看到了一个区别.
首先,具体是什么map(lambda x: x, st)?什么目的?
使用该timeit模块测试您的代码:
$ python -m timeit '"".join(reversed("abcdefghijklmnopqrstuvwxyz"))'
1000000 loops, best of 3: 0.586 usec per loop
$ python -m timeit '"abcdefghijklmnopqrstuvwxyz"[::-1]'
10000000 loops, best of 3: 0.0715 usec per loop
Run Code Online (Sandbox Code Playgroud)
如您所见,对于此特定输入,切片在我的机器上快约8倍.它也更简洁.
| 归档时间: |
|
| 查看次数: |
4339 次 |
| 最近记录: |