同时替换两个字符串

时间:2019-04-08 16:38:17

标签: python

我想替换字符串中的字符,但必须同时发生。 我不希望一个替代品影响第二个替代品。

例如,我有字符串“ hello world”。我想用e替换h,用h替换e。我希望最终结果是“ ehllo世界”而不是“ hhllo世界”,如果我一个接一个地运行2个替换函数,将会发生这种情况。

我知道我可以通过在字符串上迭代一次来做到这一点,但是我想知道是否还有更多的Python方式可以做到这一点。

3 个答案:

答案 0 :(得分:4)

如果这些方法很简单,用一个字符替换另一个字符,则可以使用translate方法:

>>> "hello world".translate(str.maketrans("he", "eh"))
'ehllo world'

答案 1 :(得分:3)

使用str.translate

In [1]: s = "hello world"

In [2]: table = str.maketrans({'h': 'e', 'e': 'h'})

In [3]: s.translate(table)
Out[3]: 'ehllo world'

答案 2 :(得分:0)

您也可以使用numpy.chararray.replace()方法。

>>> np.chararray.replace("hello world",'he','eh')
chararray('ehllo world', dtype='<U11')