當(dāng)我們對(duì)字符串進(jìn)行分割時(shí),且分割符是 \n,有可能會(huì)出現(xiàn)這樣一個(gè)窘境:
>>> str = "a\nb\n"
>>> print(str)
a
b
>>> str.split('\n')
['a', 'b', '']
>>>
會(huì)在最后一行多出一個(gè)元素,這可就太多余了吧。
實(shí)際上對(duì)于這種情況,你可以直接這樣子
>>> str = "a\nb\n"
>>>
>>> str.split()
['a', 'b']
即使是多個(gè)換行符,也照樣適用
>>> str = "a\n\nb\n\n"
>>>
>>> str.split()
['a', 'b']
有的人還會(huì)建議使用 splitlines
>>> str = "a\nb\n"
>>>
>>> str.splitlines()
['a', 'b']
但其實(shí),splitlines 方法只有在上面這種僅一個(gè)換行符的場(chǎng)景下,才能達(dá)到如上預(yù)期的。比如下邊的案例,就無法適用:
>>> str = "a\n\nb\n\n"
>>>
>>> str.splitlines()
['a', '', 'b', '']
在這里有必要補(bǔ)充下,對(duì) splitlines 的原理做一些說明
其實(shí) splitlines 函數(shù)還有一個(gè) keepends 參數(shù) ,意思是 是否要保留換行符
默認(rèn)值為 False,也正是這個(gè)原因,上面的例子才有那樣的效果 – 去掉了最后一個(gè)元素
試著指定該參數(shù)為 True,你就會(huì)發(fā)現(xiàn),原來 splitlines 是為換行符為界將字符串分成多個(gè),但并不是直接拿掉換行符。
>>> str = "a\nb\n"
>>> str.splitlines(True)
['a\n', 'b\n']
因此在多個(gè)換行符的情況下,請(qǐng)務(wù)必使用 split 方法。
審核編輯:湯梓紅
-
字符串
+關(guān)注
關(guān)注
1文章
596瀏覽量
23129 -
python
+關(guān)注
關(guān)注
57文章
4867瀏覽量
89840
發(fā)布評(píng)論請(qǐng)先 登錄
字符串控件與靜態(tài)字符串控件中預(yù)覽字符顯示亂碼,如何修改顯示正常?
字符串關(guān)聯(lián)數(shù)字變量如何使用?我們的地址都是16位數(shù)據(jù),可以使用16位數(shù)字變量顯示字符串嗎?
如何使用 NuMaker 板和 Mbed OS 上的連接字符串連接到 Azure IoT?
非對(duì)稱密鑰生成和轉(zhuǎn)換規(guī)格詳解
LM3466 多串 LED 電流平衡器技術(shù)手冊(cè)
python字符串的分割技巧
評(píng)論