【python】"join"和"+"有什么區(qū)別?

python編程拼接字符串,經(jīng)常用join和+,它倆拼接字符串的結(jié)果是一樣的,舉個(gè)例子:

但是: join連接效率 > 操作符+連接效率
舉例:將999999個(gè)“atiaisi”拼接起來(lái)
運(yùn)行結(jié)果:

可以明顯看出join執(zhí)行速度比+快很多,效率提升了大概190倍。
原因:字符串是不可變的對(duì)象,就不在字符串本身做文章了,那就另外開辟空間。
+號(hào)在拼接字符串的時(shí)候,會(huì)先開辟一塊空間,把+號(hào)左邊的字符串和+號(hào)右邊的字符串合起來(lái)放在新開辟的空間內(nèi),這樣有幾個(gè)+號(hào),就會(huì)開辟幾次空間。

join拼接字符串也需要開辟空間,但是會(huì)提前算好總共需要開辟多大的空間,一次性把內(nèi)存申請(qǐng)好,然后把所有的字符串合起來(lái)放在這個(gè)新的空間中,這樣就不用頻繁申請(qǐng)空間了。

總結(jié):
1、優(yōu)先使用join拼接字符串。數(shù)據(jù)量越大,效率差異越明顯。
2、從內(nèi)存消耗上來(lái)看,+操作符消耗的內(nèi)存要比join消耗的內(nèi)存大。多在中間臨時(shí)生成的字符串對(duì)象占用的內(nèi)存。

以上是自己根據(jù)網(wǎng)上資料總結(jié)和擴(kuò)展的,了解的不深,如果哪些知識(shí)點(diǎn)有誤,歡迎指正~

標(biāo)簽: