【问题标题】:Not able to delete \n无法删除\n
【发布时间】:2020-08-05 01:50:47
【问题描述】:

也许是一个非常简单的答案,但我似乎无法摆脱换行符。 我有一个包含列表的列表,它看起来像这样:

[['US', '  146465', '  146935', '  148012', '  149374', '  150822', '  152055', '  153315', '  154448', '  154862', '  155402\\n\n']]

最后有两个换行符,我需要去掉它们。所以首先我迭代认为大列表到达子列表。

for lists in L:

现在我在那里,我想使用list[-1] 获取列表的最后一个元素当我打印这个时,我得到155402\n 第二个换行符去哪儿了?所以我继续,现在我想唯一要做的就是在换行符处拆分它吗?:

print(lists[-1].split('\n'))

我的输出:

['  155402\\n', '']

这到底是怎么回事!现在换行符之前有一个双斜杠。事实证明我无法取出一个简单的换行符:D 所以我的问题是我如何才能摆脱列表中的换行符。任何帮助,将不胜感激。谢谢!

【问题讨论】:

  • 你想要strip() 而不是split()split 按分隔符拆分字符串并创建拆分部分的列表strip 去掉字符串两端的参数,默认为所有没有参数的空格
  • 很好,谢谢先生。您介意将您的解释显示为答案,因为我真的无法正确执行此操作。谢谢!

标签: python list newline sublist


【解决方案1】:

另一种略有不同的正则表达式方法 - 您可以同时捕捉换行符或双反斜杠n

import re

for lists in L:
    lists[-1] = re.sub('\\\\n|\n', '', lists[-1])

或者跳出循环

L[0][-1] = re.sub('\\\\n|\n', '', L[0][-1])

【讨论】:

  • 哇非常有帮助。谢谢!
【解决方案2】:

额外的 \ 正在影响拆分。所以你需要做的就是将多余的“\”替换为“”

试试:

lists[-1].replace("\\\\", "\\").split("\n")

【讨论】:

    【解决方案3】:

    在列表的最后一项中,实际上只有一个换行符,而不是两个。反斜杠“转义”换行符,因此只有 1。它没有删除第二个换行符,因为没有第二个换行符。如果需要 2 个换行符,请将 ' 155402\\n\n' 更改为 ' 155402\n\n'

    【讨论】:

    • 我知道这真的很有帮助。你解释它,你没有给出答案,所以我实际上可以自己弄清楚。我喜欢这个答案的想法谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-08
    • 2021-04-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-23
    相关资源
    最近更新 更多