1. 程式人生 > 程式設計 >python字串拼接+和join的區別詳解

python字串拼接+和join的區別詳解

python在進行字串的拼接時,一般有兩種方法,一種是使用+直接相加,另一種是使用join

a = "tests"
b = "teststs"
 
# 使用 + 
c = a + b
 
# 使用join
c = "".join(a,b)

這兩種,其實在效能上具有比較大的差別,當然如果拼接的字串的個數不多,就感受不到這種差別。

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

1. 使用 +

首先需要知道的是,在python中字串屬於不可變物件。

當用操作符+連線字串的時候,由於字串是不可變物件,其工作原理實際上是這樣的:如果要連線如下字串:S1+S2+S3+.......+SN,執行一次+操作便會在記憶體中申請一塊新的記憶體空間,並將上一次操作的結果和本次操作的右運算元複製到新申請的記憶體空間,即當執行S1+S2的時候會申請一塊記憶體,並將S1、S2複製到該記憶體中,依次類推,這樣就要進行N-1次記憶體空間的申請了,非常影響效率。

2.使用 join

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

舉個栗子

python字串拼接+和join的區別詳解

當依次增加字串的個數,得到如下的時間對比:

python字串拼接+和join的區別詳解

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

總結

到此這篇關於python字串拼接+和join區別的文章就介紹到這了,更多相關python字串拼接+和join區別內容請搜尋我們以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援我們!