Python中splitlines()函數的作用是:在定義了行邊界的字符串中返回行的列表。除非指定了 keepends 參數,且把其值設置為 True, 否則行的邊界符默認不會包含在字符串中。
str.splitlines( [ keepends ] )
語法中的 str 為要劃分行的字符串或字符串變量。
參數 keepends 是可選的,默認為 False,如果指定為 True,則在結果字符串中會包括行的邊界符。
在Python中定義了以下幾種邊界符
/n 換行符(Line Feed)/r 回車符(Carriage Return)/r/n 回車換行符(Carriage Return + Line Feed)/v 或者 /x0b 行制表符(Line Tabulation)/f 或者 /x0c 換頁符(Form Feed)/x1c 文件分隔符File Separator)/x1d 組分隔符(Group Separator)/x1e 記錄分隔符(Record Separator)/x85 下一行(C1控制碼)(Next Line (C1 Control Code))/u2028 行分隔符(Line Separator)/u2029 段落分隔符(Paragraph Separator)
其中,/v 和 /f 是在 3.2版本中添加的。
1、基本使用示例
str1 = "C#/nPython/nJava/nR"
str_lines = str1.splitlines()
print(str_lines)
str_lines = str1.splitlines(True)
print(str_lines)
輸出結果:
['C#', 'Python', 'Java', 'R']
2、splitlines()函數第2個例子
['C#/n', 'Python/n', 'Java/n', 'R']
str1 = "C#/n/nPython/r/nJava/n/rR"
str_lines = str1.splitlines()
print(str_lines)
str_lines = str1.splitlines(keepends = True)
print(str_lines)
輸出結果:
['C#', '', 'Python', 'Java', '', 'R']
從上面這個例子可以看出,/r/n 被看做一個分隔符來處理的,/n/r 被看做兩個分隔符。
['C#/n', '/n', 'Python/r/n', 'Java/n', '/r', 'R']
3、splitlines()函數不會輸出最后一個空行
str1 = "C#/nPython/r/nJava/vR/f/x1c/r/n"
str_lines = str1.splitlines()
print(str_lines)
str_lines = str1.splitlines(keepends = True)
print(str_lines)
輸出結果:
['C#', 'Python', 'Java', 'R', '', '']
['C#/n', 'Python/r/n', 'Java/x0b', 'R/x0c', '/x1c', '/r/n']
這個例子中,字符串 str1 中,字符“R”后端有三個分隔符,理論上包括“R”在內應該輸出4個字符串行,但實際上只輸出3個,這是因為,splitlines()函數不會輸出最后一個空行字符串,這一點與本站前邊所講的 split()函數不同,split() 函數會輸出最后一個空字符串,看下面這個對比的例子。
str1 = "C#/nPython/nJava/n/n"
str_lines = str1.splitlines()
print(str_lines)
str_list = str1.split('/n')
print(str_list)
輸出結果:
['C#', 'Python', 'Java', '']
可以看出,splitlines()函數輸出的列表中包括4個字符串元素,而split()函數包括5個字符串元素,比splitlines()函數多輸出一個空字符串。
['C#', 'Python', 'Java', '', '']
這篇文章介紹了Python中splitlines()函數的使用方法,有任何問題,請在下面的評論中留言指出。
新聞熱點
疑難解答