使用str.translate删除反斜杠

时间:2016-06-22 23:36:31

标签: python string python-2.7

我编写了以下Python2.7代码来删除数字和某些字符串中的反斜杠字符(\)。我试图使用str.translate方法,因为我已经知道它非常有效。下面的代码成功删除了字符串x中的数字,但无法删除y中的单个反斜杠。我做错了什么?

import string    
x = 'xb7'
y = '\xb7'
print x.translate(None, '\\' + string.digits)
print y.translate(None, '\\' + string.digits)

2 个答案:

答案 0 :(得分:1)

您没有任何带反斜杠的字符串。 x包含字符'x''b''7',而y包含单个字符'·',由十六进制代码b7表示{1}}。如果您想要文本字符串'\xb7',其中包含四个字符,请使用原始字符串,方法是在文字前加r

>>> import string
>>> print r'\xb7'.translate(None, '\\' + string.digits)
xb

答案 1 :(得分:0)

当实际需要删除反斜杠时,您的算法效果会更好。 Tigerhawk已经向您展示了十六进制字符串。这是另一个简单的示例帮助,显示未更改的原始 y

import string
x = 'xb7'
y = '\\xb7'
print x, y
kill = '\\' + string.digits
print "kill", kill
print x.translate(None, kill)
print y.translate(None, kill)
print "y=", y

输出:

xb7 \xb7
kill \0123456789
xb
xb
y= \xb7