python 字符串拼接 + 與 join 的區別

本文的文字及圖片來源於網絡,僅供學習、交流使用,不具備任何商業用途,若有問題請及時聯繫咱們以做處理html

python在進行字符串的拼接時,通常有兩種方法,一種是使用+直接相加,另外一種是使用joinpython

 
  1. a = "tests"性能優化

  2. b = "teststs"網絡

  3. # 使用 + app

  4. c = a + b性能

  5. # 使用join學習

  6. c = "".join(a,b)優化

這兩種,其實在性能上具備比較大的差異,固然若是拼接的字符串的個數很少,就感覺不到這種差異。url

先談談這兩種拼接方式各自的原理吧。spa

 

1. 使用 + 

首先須要知道的是,在python中字符串屬於不可變對象。

當用操做符+鏈接字符串的時候,因爲字符串是不可變對象,其工做原理其實是這樣的:若是要鏈接以下字符串:S1+S2+S3+.......+SN,執行一次+操做便會在內存中申請一塊新的內存空間,並將上一次操做的結果和本次操做的右操做數複製到新申請的內存空間,即當執行S1+S2的時候會申請一塊內存,並將S一、S2複製到該內存中,依次類推,這樣就要進行N-1次內存空間的申請了,很是影響效率。

2.使用 join

當使用join時,會一開始就計算出所須要的總的內存空間,也就是說只須要進行一次內存空間的申請,相比 使用 + ,效率提高巨大。

 

舉個栗子

當依次增長字符串的個數,獲得以下的時間對比:

不過也確實看出,只有當拼接的字符串個數達到較大級別時,才能被咱們人爲感知到吧,可是性能優化原本就是在多個地方一點點積累起來的。

想要獲取更多Python學習資料能夠加QQ:2955637827私聊或加Q羣630390733你們一塊兒來學習討論吧!

相關文章
相關標籤/搜索