将一个字符替换为反斜杠的错误 - Python

8

我觉得这可能是一个bug。我无法用单个反斜杠替换字符串中的某个字符:

>>>st = "a&b"
>>>st.replace('&','\\')
'a\\b'

我知道'\'不是一个合法的字符串,因为\转义了最后一个'。 然而,我不想得到'a\\b'的结果;我希望它是'a\b'。这是否可能呢?

1个回答

15

你正在查看字符串的表示,它本身是一个有效的Python字符串文字。

\\本身只是一个斜杠,但显示为转义字符,以使值成为有效的Python文本。您可以将该字符串复制并粘贴回Python中,并将生成相同的值。

使用print st.replace('&','\\')查看实际显示的值,或测试结果值的长度:

>>> st = "a&b"
>>> print st.replace('&','\\')
a\b
>>> len(st.replace('&','\\'))
3

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接