Python 无法在字典中的字符串值中添加单个反斜杠

Python 无法在字典中的字符串值中添加单个反斜杠,python,python-3.x,Python,Python 3.x,考虑是否希望值的输出为“1\2”: >>value='1'+'\\'+'2' >>print(value) 1\2 这正如预期的那样有效。但是,如果我将这个值添加到字典中,就会得到两个反斜杠。有没有一种方法可以在不修改为双反斜杠的情况下保留字符串 >>print({'key': value}) {'key': '1\\2'} 当您打印字典时,它将打印值的名称 strg = "\\" print(str(strg)) # \ print(repr(str

考虑是否希望值的输出为“1\2”:

>>value='1'+'\\'+'2'
>>print(value)
1\2
这正如预期的那样有效。但是,如果我将这个值添加到字典中,就会得到两个反斜杠。有没有一种方法可以在不修改为双反斜杠的情况下保留字符串

>>print({'key': value})
{'key': '1\\2'}

当您打印字典时,它将打印值的名称

strg = "\\"

print(str(strg))  # \
print(repr(strg)) # '\\'
所以一切都很好。我现在不知道有什么办法可以解决这个问题,除非您编写自己的字符串类并重写(这感觉太过分了)


所以你真的想达到这个目标。那就太过分了!:)

这可能会破坏一切(特别是当涉及到
eval
时)

或:


当您打印字典时,它将打印值的名称

strg = "\\"

print(str(strg))  # \
print(repr(strg)) # '\\'
所以一切都很好。我现在不知道有什么办法可以解决这个问题,除非您编写自己的字符串类并重写(这感觉太过分了)


所以你真的想达到这个目标。那就太过分了!:)

这可能会破坏一切(特别是当涉及到
eval
时)

或:


没错!我知道在dict的情况下会打印repr值。所以问题是,在字典中打印“\”的最佳方式是什么。@WehWell好的,添加了一个变通方法(实际上是两个版本)。是的!我知道在dict的情况下会打印repr值。所以问题是,在字典中打印“\”的最佳方式是什么。@WehWell ok,添加了一个变通方法(实际上有两个版本)。
from collections import UserString

class MyStr(UserString):
    def __index__(self, strg):
        super().__init__(strg)

    def __repr__(self):
        return self.data