我能够想出两种不同的方法来反转Python中的字符串。常识告诉我们,行数越多的代码运行速度越慢。我用两种方法反转了字符串。实施1:
"".join(reversed(map(lambda x:x,st)))
实施二:
st[::-1]
它们具有相似的性能。即使对于20000个字符的字符串,差异也小于1毫秒。我认为第一个应该是一个较慢的方法,因为它执行3倍以上的操作。为什么我看不到性能差异?
zbq4xfa01#
我看到了不同。首先,map(lambda x: x, st)是什么?目的是什么?使用timeit模块测试代码:
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倍。它也更简洁。
sf6xfgos2#
s=input("enter string") print(s[::-1])
2条答案
按热度按时间zbq4xfa01#
我看到了不同。
首先,
map(lambda x: x, st)
是什么?目的是什么?使用
timeit
模块测试代码:正如你所看到的,在我的机器上,对于这个特定的输入,这个切片的速度要快8倍。它也更简洁。
sf6xfgos2#