生活随笔
收集整理的這篇文章主要介紹了
[转]python 中的字符串连接
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
python 中可使用 + 進行字符串的連接操作
但很多文檔里都說,python 使用 + 進行字符串連接的效率低下
這直接導致本人在代碼中不敢使用 + 進行字符串的連接操作
?
可事實又是怎樣呢?
之所以說python 中使用 + 進行字符串連接的操作效率低下,是因為python中字符串是不可變的類型,使用 + 連接兩個字符串時會生成一個新的字符串,生成新的字符串就需要重新申請內存,當連續相加的字符串很多時(a+b+c+d+e+f+...) ,效率低下就是必然的了
對于這種連加操作可以用列表實現:Str = ''.jon(a,b,c,d,e,f,...) 以提高效率,這樣只會有一次內存的申請
其實在實際應用中需要使用字符串連續相加是很少的,更多的操作是幾個字符串的連接,當有這樣的需求時,使用 + 操作符其實是最快的方式?
本人同樣也嘗試過使用 tList.append(i),最后再 ''.join(tList),但經實際代碼對比,還是 + 操作效率更高
?
下面給出測試代碼:
?
[python]?view plaincopy
??????import?os,sys??import?time????MAX?=?9000000??char_list?=?[?chr((i?%?26)?+97)??for?i?in?xrange(MAX)?]????my_str=''??last_time?=?time.time()??for?i?in?char_list:??????my_str?=?my_str?+?i??print?time.time()?-?last_time??print?'-'?*?80??????my_str=''??t_list=[]??last_time?=??time.time()??for?i?in?char_list:??????t_list.append(i)??my_str?=?''.join(t_list)??print?time.time()?-?last_time??print?'-'?*?80?? 運行結果:
?
2.13897681236 -------------------------------------------------------------------------------- 2.35726714134 --------------------------------------------------------------------------------
?
下面是一個連加操作時? 字符串+ 與列表 join的效率對比(代碼來自:http://www.douban.com/group/topic/12795262/? 的一則回貼):
?
[python]?view plaincopy
from?time?import?time????def?lz():??????t?=?time()??????for?i?in?xrange(10000):??????????s?=?'蘭州'+'蘭州'+'蘭州'+'蘭州'+'蘭州'+'蘭州'+'蘭州'+'蘭州'+'蘭州'+'蘭州'+'蘭州'+'蘭州'+'蘭州'+'蘭州'+'蘭州'+'蘭州'+'蘭州'+'蘭州'+'蘭州'+'蘭州'+'蘭州'+'蘭州'??+'蘭州'+'蘭州'+'蘭州'+'蘭州'+'蘭州'+'蘭州'+'蘭州'+'蘭州'+'蘭州'+'蘭州'+'蘭州'+'蘭州'+'蘭州'+'蘭州'+'蘭州'+'蘭州'+'蘭州'+'蘭州'+'蘭州'+'蘭州'+'蘭州'+'蘭州'+'蘭州'+'蘭??州'+'蘭州'+'蘭州'+'蘭州'+'蘭州'+'蘭州'+'蘭州'+'蘭州'+'蘭州'+'蘭州'+'蘭州'+'蘭州'+'蘭州'+'蘭州'+'蘭州'+'蘭州'+'蘭州'+'蘭州'+'蘭州'+'蘭州'+'蘭州'+'蘭州'+'蘭州'+'蘭州'+??'蘭州'+'蘭州'+'蘭州'+'蘭州'+'蘭州'+'蘭州'+'蘭州'+'蘭州'+'蘭州'+'蘭州'+'蘭州'+'蘭州'+'蘭州'+'蘭州'+'蘭州'+'蘭州'+'蘭州'+'蘭州'+'蘭州'+'蘭州'+'蘭州'+'蘭州'+'蘭州'+'蘭>??州'+'蘭州'+'蘭州'+'蘭州'+'蘭州'+'蘭州'+'蘭州'+'蘭州'??????print?time()?-?t??def?v5():??????t?=?time()??????for?i?in?xrange(10000):??????????s?=?''.join(['威武','威武','威武','威武','威武','威武','威武','威武','威武','威武','威武','威武','威武','威武','威武','威武','威武','威武','威武','威武','威>??武','威武','威武','威武','威武','威武','威武','威武','威武','威武','威武','威武','威武','威武','威武','威武','威武','威武','威武','威武','威武','威武','威武','威武',??'威武','威武','威武','威武','威武','威武','威武','威武','威武','威武','威武','威武','威武','威武','威武','威武','威武','威武','威武','威武','威武','威武','威武','威>??武','威武','威武','威武','威武','威武','威武','威武','威武','威武','威武','威武','威武','威武','威武','威武','威武','威武','威武','威武','威武','威武','威武','威武',??'威武','威武','威武','威武','威武','威武','威武','威武','威武'])??????print?time()?-t??lz()?is?v5()?? 運行結果:
?
0.111644983292 0.0529618263245
轉載于:https://www.cnblogs.com/study-development/p/3633743.html
總結
以上是生活随笔為你收集整理的[转]python 中的字符串连接的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。