這裡是最全面的 python 字元串拼接總結

這裡是最全面的 python 字元串拼接總結

來自專欄輕鬆學python編程

在 Python 中字元串連接有多種方式,這裡簡單做個總結,應該是比較全面的了,方便以後查閱。

加號連接

第一種,通過+號的形式:

>>> a, b =hello, world

>>> a + b

hello world

逗號連接

第二種,通過,逗號的形式:

>>> a, b =hello, world

>>> print(a, b)

hello world

但是,使用,逗號形式要注意一點,就是只能用於print列印,賦值操作會生成元組:

>>> a, b

(hello, world)

python之禪註:實際上,這不算是字元串連接的一種方式,因為hello, world會當作一個元組存在,通過解包(unpacking)的方式賦值給變數 a 和 b.小編推薦一個學python的學習裙,【六九九+七四九+八五二】,無論你是大牛還是小白,是想轉行還是想入行都可以來了解一起進步一起學習!裙內有開發工具,很多乾貨和技術資料分享!

直接連接

第三種,直接連接中間有無空格均可:

print(hello world)

print(helloworld)

Python之禪註:這算是Python裡面的一種語法糖,連續的字元串會自動拼接成一個字元串。在內存中不會存在兩個字元串對象。(代碼可左右滑動)

>>> defx():

... a =ab

...

>>> dis.dis(x)

20LOAD_CONST1(ab)

3STORE_FAST0(a)

6LOAD_CONST0(None)

9RETURN_VALUE

百分號 %

第四種,使用%操作符。

在 Python 2.6 以前,%操作符是唯一一種格式化字元串的方法,它也可以用於連接字元串。

print(%s %s % (hello, world))

format函數

第五種,使用format方法。

format 方法是 Python 2.6 中出現的一種代替 % 操作符的字元串格式化方法,同樣可以用來連接字元串。

print({}{}.format(hello, world)

join函數

第六種,使用join內置方法。

字元串有一個內置方法join,其參數是一個序列類型,例如數組或者元組等。

print(-.join([aa, bb, cc]))

f-string

第七種,使用f-string方式。

Python 3.6 中引入了 Formatted String Literals(字面量格式化字元串),簡稱 f-string,f-string 是 % 操作符和 format 方法的進化版,使用 f-string 連接字元串的方法和使用 %操作符、format 方法類似。

>>> aa, bb =hello,world

>>> f{aa} {bb}

hello world

星號 *

第八種,使用*操作符。

>>> aa =hello

>>> aa *3

hello hello hello

Python之禪註:*操作符其實是一種操作符重載操作,對應的魔術方法是__mul__

>>> a = [1]

>>> a*2

[1,1]

>>> a.__mul__(3)

[1,1,1]

小結

連接少量字元串時,推薦使用+號操作符。

如果對性能有較高要求,並且python版本在3.6以上,推薦使用f-string。例如,如下情況f-string可讀性比+號要好很多:

a = f姓名:{name} 年齡:{age} 性別:{gender}

b =姓名:+ name +年齡:+ age +性別:+ gender

連接大量字元串時,推薦使用 join 和 f-string 方式,選擇時依然取決於你使用的 Python 版本以及對可讀性的要求。

筆者曾經做過一個測試,python3.6中,數據量不大的情況下+操作甚至比join操作還快。你還有遇到過哪些神操作,歡迎留言。

推薦閱讀:

Python每日一練0009
2個月精通Python爬蟲——3大爬蟲框架+6場實戰+分散式爬蟲,包教包會
56 行代碼,帶你爬取豆瓣影評
輕量級辦公平台開發實錄(7):用戶認證的實現
命令行基礎學習

TAG:Python | 編程語言 | Python入門 |