如何删除数组中的换行符

时间:2015-10-09 06:18:25

标签: python

在运行代码时,我得到了一个输出,

vivek

Hello World!

" vivek"之间有换行符。和#34;你好世界",但我想要一个没有换行的输出

vivek
Hello World

如上所述

# Hello World program in Python
arr =['vivek\n','singh\n']
arr[0].replace('\n','')
print arr[0]
print "Hello World!"

5 个答案:

答案 0 :(得分:1)

只需替换

arr[0].replace('\n','')

通过

arr[0] = arr[0].replace('\n', '')

因为str.replace仅返回修改后的副本而不修改原始副本。请参阅str.replace documentation

其他建议

您还可以使用str.strip删除周围的空格。删除列表的所有周围空格的简洁方法是

yourlist = [strelement.strip() for strelement in yourlist]

这称为list comprehension

您可能还希望将print用作函数而不是语句。因此,您使用print("whatever")代替print "whatever"。 print函数适用于Python 2和Python 3,而该语句仅适用于Python 2。

然后,您可能需要查看http://pep8online.com/https://www.python.org/dev/peps/pep-0008/

答案 1 :(得分:0)

您还可以执行拆分和联接,从列表中删除新行:

arr = ['vivek\n', 'singh\n']
arr = ''.join(arr).split('\n')
print(arr[0] + " Hello World!")

print(arr[0])
print(" Hello World!")

问题是如何从列表中的字符串中删除新行。 splitjoin是最常用的pythonic方式。

答案 2 :(得分:0)

因为attr [0]是一个字符串,string.replace只返回更新后的字符串的副本,但不会更改原始字符串。

答案 3 :(得分:0)

您也可以使用正则表达式删除:

>>> import re
>>> result = re.sub(u"\u005cn", r"", "vivek\n Hello World!")
>>> result
'Vivek Hello World!'

答案 4 :(得分:-1)

您可以使用 regular expressions过滤掉字符串中不需要的字符。

import re
s = "hello\nworld"
print re.sub(r'\n',' ',s)

将返回:" hello world"

所以你需要做的就是

print re.sub(r'\n','',arr[0])