在python中反转字符串的最快方法

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倍.它也更简洁.