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()函数的使用方法,有任何问题,请在下面的评论中留言指出。
新闻热点
疑难解答