03.06 這是最全面的python字符串拼接總結(文末附贈python最完整教程)

這是最全面的python字符串拼接總結(文末附贈python最完整教程)

Python 的概念


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


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

<code>>>> a, b = 'hello', ' world'>>> a + b'hello world'/<code>


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

<code>>>> a, b = 'hello', ' world'>>> print(a, b)hello world/<code>


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

<code>>>> a, b('hello', ' world')/<code>

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


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

<code>print('hello' ' world')print('hello''world')/<code>

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

<code>>>> def x():... a = 'a''b'...>>> dis.dis(x) 2 0 LOAD_CONST 1 ('ab') 3 STORE_FAST 0 (a) 6 LOAD_CONST 0 (None) 9 RETURN_VALUE/<code>


百分號 %
第四種,使用%操作符。

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

<code>print('%s %s' % ('hello', 'world'))/<code>


format函數
第五種,使用format方法。

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

<code>print('{}{}'.format('hello', ' world')/<code>


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


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

<code>print('-'.join(['aa', 'bb', 'cc']))/<code>


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

Python 3.6 中引入了 Formatted String Literals(字面量格式化字符串),簡稱 f-string,f-string 是 % 操作符和 format 方法的進化版,使用 f-string 連接字符串的方法和使用 %操作符、format 方法類似。小編推薦一個學python的學習裙,【六九九+七四九+八五二】,無論你是大牛還是小白,是想轉行還是想入行都可以來了解一起進步一起學習!裙內有開發工具,很多幹貨和技術資料分享!

<code>>>> aa, bb = 'hello', 'world'>>> f'{aa} {bb}''hello world'/<code>


星號 *
第八種,使用*操作符。

<code>>>> aa = 'hello '>>> aa * 3'hello hello hello '/<code>


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

<code>>>> a = [1]>>> a*2[1, 1]>>> a.__mul__(3)[1, 1, 1]/<code>


小結


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

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

<code>a = f'姓名:{name} 年齡:{age} 性別:{gender}'b = '姓名:' + name + '年齡:' + age + '性別:' + gender/<code>

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


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

最後,想學習Python的小夥伴們!


請關注+私信回覆:“學習”就可以拿到一份我為大家準備的Python學習資料!

這是最全面的python字符串拼接總結(文末附贈python最完整教程)


分享到:


相關文章: