split例子:
S1 = "Horse-Horse-Tiger-Tiger"
print(S.split('-')) #['Horse', 'Horse', 'Tiger', 'Tiger']
print(S.split('Horse')) #['', '-', '-Tiger-Tiger']
S2 = "three monkey jumping on the bed"
print(S2.split()) #['three', 'monkey', 'jumping', 'on', 'the', 'bed']
print(S2.split(' ')) #['three', '', '', '', '', 'monkey', '', '', 'jumping', '', 'on', 'the', '', '', '', 'bed']
這邊注意S2.split()
和S2.split(' ')
是不一樣的,
如果原始字串有多個空格,
S2.split()
會將多餘的空字元去除,
但S2.split(' ')
會分割出許多空字元,
一般來說,以空格分割字串直接用S2.split()
即可。
join例子:
seq = ["HOW", "ARE", "YOU"]
print(' '.join(seq)) # 印出 HOW ARE YOU
print('-'.join(seq)) # 印出 HOW-ARE-YOU
巧思: 簡潔語法換行印列表字串
假設我們有一個列表,裡面元素都是字串,
現在想要把列表內字串一行一行的印出來怎麼做呢?
舉例來說,
假設L=["Alice", "Bob", "Car"]
,
希望結果印出:
Alice
最常見也最容易想的方法大概就是for迴圈了:
for s in L:
print(s)
還有沒有其它方法呢?
這時就要用到join()
了:
print('\n'.join(L))
哇,這是什麼不可思議的語法,連迴圈都省了?
首先\n
是特殊字元,代表換行的意思,
因此用\n
換行字元把列表裡的字串接起來,
自然就可以換行印囉。