【问题标题】:How to split while keeping the empty line?如何在保留空行的同时拆分?
【发布时间】:2015-06-25 04:49:32
【问题描述】:

例如

'a b\n\n\nc'.split()

给予

['a', 'b', 'c']

当我想要的时候

['a','b','','','c']

有什么想法吗?

【问题讨论】:

  • 你的问题和预期的输出完全不同。
  • @AvinashRaj 如果他们在标题中将“line”复数为“lines”会更好吗?否则,问题和预期输出几乎完全匹配。

标签: python string split


【解决方案1】:

使用str.splitlines。检查the docs,您会发现它也会在其他类似换行符的字符上分裂。如果您希望它\n 上拆分,请使用str.split("\n")

>>> "a\n\n\nb".splitlines()
['a', '', '', 'b']

【讨论】:

  • 非常感谢。我想我没有说得很清楚。我需要在空白处拆分,同时保持以某种方式遇到的空行。
【解决方案2】:

使用re.split

re.split(r'[ \t]', s)

这会在空格或制表符上进行分割。

【讨论】:

  • 我认为这是我的问题的解决方案。谢谢你。虽然我认为 '\t' 应该是 '\n'。
【解决方案3】:

使用 - .split('\n')

示例 -

>>> 'a\n\n\nb'.split('\n')
['a', '', '', 'b']

split() 被所有空格分割,因此您不会得到中间的行,而是可以将 \n 作为参数发送到 split 以告诉它在每个 \n 处分割。

【讨论】:

  • 谢谢。是的,这行得通。只是我仍然想在保留空行的同时按空格分割。
【解决方案4】:

使用 str.splitlines():

>>> 'a\n\n\nb'.splitlines()
['a', '', '', 'b']

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-11
    • 2012-08-17
    • 1970-01-01
    • 1970-01-01
    • 2011-02-17
    相关资源
    最近更新 更多