Python 3.x Python3.x中的符号反转

Python 3.x Python3.x中的符号反转,python-3.x,string,str-replace,Python 3.x,String,Str Replace,我有一个字符串: a = '3+7-9' 我需要将'+'转换为'-'并将'-'转换为'+',以获得 a = '3-7+9' 使用而不乘以*-1的正确方法是什么?您可以使用以下各项来使用和构建地图: str.maketrans(“+-”,“-+”)将构建一个字典: >>> str.maketrans("+-","-+") {43: 45, 45: 43} 因此,它将带有代码43(即'+')的字符映射到字符45(即'-')上,反之亦然 因此,通过省略str.maketrans

我有一个字符串:

a = '3+7-9'
我需要将
'+'
转换为
'-'
并将
'-'
转换为
'+'
,以获得

a = '3-7+9'
使用而不乘以
*-1
的正确方法是什么?

您可以使用以下各项来使用和构建地图:

str.maketrans(“+-”,“-+”)
将构建一个字典:

>>> str.maketrans("+-","-+")
{43: 45, 45: 43}
因此,它将带有代码
43
(即
'+'
)的字符映射到字符
45
(即
'-'
)上,反之亦然

因此,通过省略
str.maketrans(..)
部分并编写以下代码,可以稍微提高性能:

a = a.translate({43: 45, 45: 43})
这将产生:

>>> a = '3+7-9'
>>> a.translate({43: 45, 45: 43})
'3-7+9'
如果您知道Linux的
tr
命令,您会注意到:

a.translate(str.maketrans("x","y"))
a.translate(str.maketrans(“x”,“y”))
相当于:

tr x y
trxy
(在Linux shell中)

您可以使用以下工具来使用和构建地图:

str.maketrans(“+-”,“-+”)
将构建一个字典:

>>> str.maketrans("+-","-+")
{43: 45, 45: 43}
因此,它将带有代码
43
(即
'+'
)的字符映射到字符
45
(即
'-'
)上,反之亦然

因此,通过省略
str.maketrans(..)
部分并编写以下代码,可以稍微提高性能:

a = a.translate({43: 45, 45: 43})
这将产生:

>>> a = '3+7-9'
>>> a.translate({43: 45, 45: 43})
'3-7+9'
如果您知道Linux的
tr
命令,您会注意到:

a.translate(str.maketrans("x","y"))
a.translate(str.maketrans(“x”,“y”))
相当于:

tr x y
trxy

(在Linux shell中)

*-1相乘将不起作用。这是一根绳子。不能将字符串与负数相乘(它将生成空字符串)。与
*-1相乘将不起作用。这是一根绳子。不能将字符串与负数相乘(它将生成空字符串)。