將幾個小的字符串合併爲一個大的字符串
合併的字符串是在一個序列或者 iterable
中,那麼最快的方式就是使用 join()
方法。比如:
>>> parts = ['Is', 'Chicago', 'Not', 'Chicago?']
>>> ' '.join(parts)
'Is Chicago Not Chicago?'
>>> ','.join(parts)
'Is,Chicago,Not,Chicago?'
>>> ''.join(parts)
'IsChicagoNotChicago?'
只是合併少數幾個字符串,使用加號(+)通常已經足夠了:
>>> a = 'Is Chicago'
>>> b = 'Not Chicago?'
>>> a + ' ' + b
'Is Chicago Not Chicago?'
需要引起注意的是,當我們使用加號(+)操作符去連接大量的字符串的時候是非常低效率的, 因爲加號連接會引起內存複製以及垃圾回收操作。 特別的,你永遠都不應像下面這樣寫字符串連接代碼:
s = ''
for p in parts:
s += p
這種寫法會比使用 join()
方法運行的要慢一些,因爲每一次執行+=操作的時候會創建一個新的字符串對象。 你最好是先收集所有的字符串片段然後再將它們連接起來。
一個相對比較聰明的技巧是利用生成器表達式:
>>> data = ['ACME', 50, 91.1]
>>> ','.join(str(d) for d in data)
'ACME,50,91.1'