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時,會一開始就計算出所需要的總的記憶體空間,也就是說只需要進行一次記憶體空間的申請,相比 使用 + ,效率提升巨大,
舉個栗子

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

不過也確實看出,只有當拼接的字串個數達到較大級別時,才能被我們人為感知到吧,但是性能優化本來就是在多個地方一點點積累起來的,
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/229459.html
標籤:python
上一篇:ML:基于自定義資料集利用Logistic、梯度下降演算法GD、LoR邏輯回歸、Perceptron感知器、SVM支持向量機、LDA線性判別分析演算法進行二分類預測(決策邊界可視化)
