【发布时间】:2017-12-09 10:08:45
【问题描述】:
我能够想出两种不同的方法来在 Python 中反转字符串。
常识表明,代码行数越多,运行速度就越慢。
我做了以下几行代码:
代码1
"".join(reversed(map(lambda x:x,st)))
代码2
st[::-1]
这些提供类似的性能。对于 20000 长的字符串,我什至看不到性能上的一毫秒差异。
我认为第一种方法应该是一种较慢的方法,因为它执行的操作要多 3 倍。
问题
为什么我没有看到性能差异?
【问题讨论】:
-
这两个时间你是怎么计算的?对于包含 20,000 个字符的字符串,我得到了合理的结果:i.imgur.com/DhKaxhR.png
-
在第一种情况下您没有使用:
''.join(reversed(st))的任何原因? -
我在代码开头使用 time.now() 并在代码末尾使用 time.now() 进行基准测试。 @Cyb3rFly3r:这不是要提出一个有效的算法,而是要看看这两者中的哪一个会更快但是是的
''.join(reversed(st))并没有引起我的注意
标签: python string string-matching