日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

[转]python 中的字符串连接

發布時間:2023/12/20 python 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 [转]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
  • #!/usr/bin/env?python??
  • #?-*-?coding:utf-8?-*-??
  • ??
  • 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 中的字符串连接的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。