可能是最全面的 python 字串拼接總結

楓戀寒發表於2019-02-16

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

加號連線

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

>>> a, b = `hello`, ` world`
>>> a + b
`hello world`

逗號連線

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

>>> a, b = `hello`, ` world`
>>> print(a, b)
hello  world

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

>>> a, b
(`hello`, ` world`)

直接連線

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

print(`hello`         ` world`)
print(`hello``world`)

%

第四種,使用%操作符。

在 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-stringf-string% 操作符和 format 方法的進化版,使用 f-string 連線字串的方法和使用 %操作符、format 方法類似。

>>> aa, bb = `hello`, `world`
>>> f`{aa} {bb}`
`hello world`

*

第八種,使用*操作符。

>>> aa = `hello `
>>> aa * 3
`hello hello hello `

小結

連線少量字串時

推薦使用+號操作符。

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

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

連線大量字串時

推薦使用 joinf-string 方式,選擇時依然取決於你使用的 Python 版本以及對可讀性的要求。

參考連結

你所不知道的 Python | 字串連線的祕密

相關文章