python字符串拼接+和join的區(qū)別詳解
python在進行字符串的拼接時,一般有兩種方法,一種是使用+直接相加,另一種是使用join
a = "tests" b = "teststs" # 使用 + c = a + b # 使用join c = "".join(a,b)
這兩種,其實在性能上具有比較大的差別,當然如果拼接的字符串的個數(shù)不多,就感受不到這種差別。
先談談這兩種拼接方式各自的原理吧。
1. 使用 +
首先需要知道的是,在python中字符串屬于不可變對象。
當用操作符+連接字符串的時候,由于字符串是不可變對象,其工作原理實際上是這樣的:如果要連接如下字符串:S1+S2+S3+.......+SN,執(zhí)行一次+操作便會在內(nèi)存中申請一塊新的內(nèi)存空間,并將上一次操作的結(jié)果和本次操作的右操作數(shù)復制到新申請的內(nèi)存空間,即當執(zhí)行S1+S2的時候會申請一塊內(nèi)存,并將S1、S2復制到該內(nèi)存中,依次類推,這樣就要進行N-1次內(nèi)存空間的申請了,非常影響效率。
2.使用 join
當使用join時,會一開始就計算出所需要的總的內(nèi)存空間,也就是說只需要進行一次內(nèi)存空間的申請,相比 使用 + ,效率提升巨大。
舉個栗子
當依次增加字符串的個數(shù),得到如下的時間對比:
不過也確實看出,只有當拼接的字符串個數(shù)達到較大級別時,才能被我們?nèi)藶楦兄桨?,但是性能?yōu)化本來就是在多個地方一點點積累起來的。
總結(jié)
到此這篇關于python字符串拼接+和join區(qū)別的文章就介紹到這了,更多相關python字符串拼接+和join區(qū)別內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
python opencv minAreaRect 生成最小外接矩形的方法
這篇文章主要介紹了python opencv minAreaRect 生成最小外接矩形的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2019-07-07Python基于xlutils修改表格內(nèi)容過程解析
這篇文章主要介紹了Python基于xlutils修改表格內(nèi)容過程解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2020-07-07解決pycharm編輯區(qū)顯示yaml文件層級結(jié)構(gòu)遇中文亂碼問題
這篇文章主要介紹了解決pycharm編輯區(qū)顯示yaml文件層級結(jié)構(gòu)遇中文亂碼問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-04-04Keras中Sequential模型和Functional模型的區(qū)別及說明
這篇文章主要介紹了Keras中Sequential模型和Functional模型的區(qū)別及說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-12-12matplotlib繪制鼠標的十字光標的實現(xiàn)(內(nèi)置方式)
這篇文章主要介紹了matplotlib繪制鼠標的十字光標的實現(xiàn)(內(nèi)置方式),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2021-01-01