正在从python字符串中删除\xa0\n\t

正在从python字符串中删除\xa0\n\t,python,string,unicode,Python,String,Unicode,我有一个列表项,已转换为字符串: [u'\n Door:\xa0Novum \t '] 我需要把所有的东西都拿走,这样我就可以 Door:Novum 我尝试过各种方法: string = string.replace("\xa0", "") string.rstrip('\n') string.translate(string.maketrans("\n\t", "")) 很明显,我做错了什么,但是我不知道存储返回值需要

我有一个列表项,已转换为字符串:

[u'\n                      Door:\xa0Novum          \t      ']
我需要把所有的东西都拿走,这样我就可以

Door:Novum
我尝试过各种方法:

string = string.replace("\xa0", "")
string.rstrip('\n')
string.translate(string.maketrans("\n\t", ""))
很明显,我做错了什么,但是我不知道存储返回值需要什么;字符串是不可变的,所以方法返回一个应用了更改的新字符串

您可以对所有这些字符进行翻译,但使用方法的
unicode
形式:

toremove = dict.fromkeys((ord(c) for c in u'\xa0\n\t '))
outputstring = inputstring.translate(toremove)
我猜你也想要去掉空格

演示:

更好的方法仍然是使用
str.split()
,然后再次加入:

outputstring = u''.join(inputstring.split())
\xa0
,空格、制表符和换行符都包含在
str.split()
将拆分的内容以及回车中

演示:

这更好,因为它比使用
str.translate()
更快

您需要存储返回值;字符串是不可变的,所以方法返回一个应用了更改的新字符串

您可以对所有这些字符进行翻译,但使用方法的
unicode
形式:

toremove = dict.fromkeys((ord(c) for c in u'\xa0\n\t '))
outputstring = inputstring.translate(toremove)
我猜你也想要去掉空格

演示:

更好的方法仍然是使用
str.split()
,然后再次加入:

outputstring = u''.join(inputstring.split())
\xa0
,空格、制表符和换行符都包含在
str.split()
将拆分的内容以及回车中

演示:

这更好,因为它比使用
str.translate()
更快


字符串是不可变的。
strip
方法不会更改原始字符串。那么,您是收到错误消息还是什么?不,只是没有发生任何事情字符串是不可变的。
strip
方法不会更改原始字符串。那么,您是收到错误消息还是什么?不,只是没有发生任何事情
>>> import timeit
>>> timeit.timeit('inputstring.translate(toremove)', 'from __main__ import inputstring, toremove')
3.4527599811553955
>>> timeit.timeit('u"".join(inputstring.split())', 'from __main__ import inputstring')
0.5409181118011475