如何从列表中的字符串末尾删除 '\n'? [复制]

Posted

技术标签:

【中文标题】如何从列表中的字符串末尾删除 \'\\n\'? [复制]【英文标题】:How to remove '\n' from end of strings inside a list? [duplicate]如何从列表中的字符串末尾删除 '\n'? [复制] 【发布时间】:2014-02-15 00:09:49 【问题描述】:

我这里有 2 个字符串:

line= ['ABDFDSFGSGA', '32\n']
line= ['NBMVA\n']

如何从这些字符串的末尾删除\n。我已经尝试过rstrip()strip(),但我仍然无法从字符串中删除\n。我可以帮忙移除它吗?

【问题讨论】:

向我们展示您尝试过的实际代码。你走在正确的道路上...... 再试一次map(str.rstrip, line)给我['ABDFDSFGSGA', '32'] 提示:你没有字符串,而是字符串列表。 我已经尝试过 line.remove('\n') 以及 line.rstrip('\n') 以及 line.strip() 谢谢,但请将其编辑到问题中,然后我们都可以看到什么不起作用:) 【参考方案1】:

您需要访问要从列表中删除的元素:

line= ['ABDFDSFGSGA', '32\n']

#We want to strip all elements in this list
stripped_line = [s.rstrip() for s in line]

您可能做错了,只是简单地调用line[1].rstrip()。这不起作用,因为rstrip 方法不起作用inplace,而是返回一个被剥离的新字符串。

例子:

>>> a = 'mystring\n'
>>> a.rstrip()
Out[22]: 'mystring'
>>> a
Out[23]: 'mystring\n'
>>> b = a.rstrip()
>>> b
Out[25]: 'mystring'

【讨论】:

【参考方案2】:

行的类型是列表,因此您不能应用任何strip 方法。 strip 方法用于字符串。

您需要遍历列表并对该列表中存在的每个字符串应用rstrip() 方法。

>>> line= ['ABDFDSFGSGA', '32\n']
>>> map(str.rstrip, line)
['ABDFDSFGSGA', '32']

【讨论】:

【参考方案3】:

您可以使用.replace('\n',''),但请注意,这将删除\n 的所有实例如果您想对整个列表执行此操作,您可以这样做:

line = [i.replace('\n','') for i in line]

【讨论】:

没有反对意见,但是如果line 是一个字符串,这也会删除字符串中间的\n 这对列表没有任何作用...AttributeError: 'list' object has no attribute 'replace' 很抱歉没仔细看。我编辑了我的答案以用于列表。 不用担心 :)。这是一个鬼鬼祟祟的! OP 声明他想从字符串末尾删除\n,所以我不确定这个答案是否适合这个问题。

以上是关于如何从列表中的字符串末尾删除 '\n'? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

java 19.从列表末尾删除第N个节点(#)。java

java 19.从列表末尾删除第N个节点(#)。java

java 19.从列表末尾删除第N个节点(#)。java

java 19.从列表末尾删除第N个节点(#)。java

java 19.从列表末尾删除第N个节点(#)。java

java 19.从列表末尾删除第N个节点(#)。java