在 Python 中用换行符拆分字符串

在 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 的常量:NoneFalse.
  • 0任何数字类型的(零)
  • 空序列和集合:(""空字符串),()(空元组),[]
    (空列表),
    {}(空字典),set()(空集),range(0)(空范围)。

请注意,该filter()函数返回一个过滤器对象(不是列表)。如果需要将对象转换为列表,请将其传递给list()类。

列表类接受一个可迭代对象并返回一个列表对象