Skip to main content
 首页 » 编程设计

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

2025年05月04日20Renyi-Fan

我想出了两种不同的方法来在 Python 中反转字符串。

常识表明,代码行数越多,运行速度越慢。

我编写了以下几行代码:

代码1

"".join(reversed(map(lambda x:x,st))) 

代码2

st[::-1] 

这些提供了相似的性能。对于 20000 长的字符串,我看不出哪怕是一毫秒的性能差异。

我认为第一种方法应该是一种较慢的方法,因为它执行的操作多 3 倍。

问题

为什么我没有看到性能差异?

请您参考如下方法:

我看到了不同。

首先,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 

如您所见,对于此特定输入,切片在我的机器上快约 8 倍。它也更简洁。