簡體   English   中英

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

[英]Fastest way to reverse a string in python

我能夠想出兩種不同的方法來反轉 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 倍。 它也更簡潔。

s=input("enter string")
print(s[::-1])

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM