如何从列表中的字符串末尾删除 '\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'? [复制]的主要内容,如果未能解决你的问题,请参考以下文章