在 Python 中用换行符拆分字符串
Split a string on newline characters in Python
使用该str.splitlines()
方法在换行符上拆分字符串,例如my_list = my_str.splitlines()
. 该splitlines
方法在每个换行符处拆分字符串并返回字符串中的行列表。
主程序
my_str = 'first\nsecond\nthird\n' my_list = my_str.splitlines() # 👇️ ['first', 'second', 'third'] print(my_list)
str.splitlines
方法在换行符处
拆分字符串并返回包含字符串中的行的列表。
该方法不包括换行符,除非keepends
参数设置为True
。
主程序
my_str = 'first\nsecond\nthird\n' my_list = my_str.splitlines() # 👇️ ['first', 'second', 'third'] print(my_list) # 👇️ ['first\n', 'second\n', 'third\n'] print(my_str.splitlines(True))
该str.splitlines
方法在各种线边界上拆分,例如\n
、\r
、
\r\n
等。
主程序
my_str = 'first\rsecond\r\nthird\n' my_list = my_str.splitlines() # 👇️ ['first', 'second', 'third'] print(my_list)
该\r\n
字符是 Windows 上的换行符。
该\n
字符是 Linux 和 macOS 上的换行符。
该\r
字符用于旧的 OS X 之前的 Mac。
该str.splitlines()
方法在所有操作系统的换行符上拆分,当您必须按\r\n
(Windows 样式)拆分时特别有用。
如果字符串以换行符结尾,则该splitlines()
方法将其删除,而不是str.split()
方法。
主程序
my_str = 'first\nsecond\nthird\n' my_list = my_str.splitlines() # 👇️ ['first', 'second', 'third'] print(my_list) # 👇️ ['first', 'second', 'third', ''] print(my_str.split('\n'))
如果文本和换行符之间有空格,请使用
str.strip()
方法将其删除。
主程序
my_str = 'first \nsecond \nthird \n' my_list = [line.strip() for line in my_str.splitlines()] # 👇️ ['first', 'second', 'third'] print(my_list)
我们使用列表理解来迭代列表。
列表推导用于对每个元素执行一些操作,或者选择满足条件的元素子集。
在每次迭代中,我们调用该
str.strip()
方法从字符串中去除任何前导和尾随空白。如果您在结果中得到空字符串并想过滤掉它们,请使用该
filter()
函数。
主程序
my_str = '\rfirst\r\nsecond\nthird\n' my_list = list(filter(None, my_str.splitlines())) # 👇️ ['first', 'second', 'third'] print(my_list)
filter函数接受一个函数和一个可迭代对象作为参数,并从可迭代对象的元素构造一个迭代器,函数返回一个真值。
如果您传递
None
函数参数,则 iterable 的所有虚假元素都将被删除。所有不真实的值都被认为是虚假的。Python 中的虚假值是:
- 定义为 falsy 的常量:
None
和False
. 0
任何数字类型的(零)- 空序列和集合:(
""
空字符串),()
(空元组),[]
(空列表),{}
(空字典),set()
(空集),range(0)
(空范围)。
请注意,该filter()
函数返回一个过滤器对象(不是列表)。如果需要将对象转换为列表,请将其传递给list()
类。
列表类接受一个可迭代对象并返回一个列表对象。