我想出了两种不同的方法来逆转Python中的字符串。
常识表明,代码行越多,运行速度就越慢。
我编写了以下代码:
Code1
"".join(reversed(map(lambda x:x,st)))
Code2
st[::-1]
这些都提供了类似的表现。对于一条20000长的字符串,我连一毫秒的性能都看不见。
我认为第一个应该是一个较慢的方法,因为它执行3倍多的操作。
问题
为什么我看不到表演上的差异?
发布于 2016-04-29 17:18:10
我看到了不同之处。
首先,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倍。它也更简洁。
发布于 2018-11-16 00:27:31
s=input("enter string")
print(s[::-1])
https://stackoverflow.com/questions/36949665
复制