我想替换字符串中的字符,但必须同时发生。 我不希望一个替代品影响第二个替代品。
例如,我有字符串“ hello world”。我想用e替换h,用h替换e。我希望最终结果是“ ehllo世界”而不是“ hhllo世界”,如果我一个接一个地运行2个替换函数,将会发生这种情况。
我知道我可以通过在字符串上迭代一次来做到这一点,但是我想知道是否还有更多的Python方式可以做到这一点。
答案 0 :(得分:4)
如果这些方法很简单,用一个字符替换另一个字符,则可以使用translate
方法:
>>> "hello world".translate(str.maketrans("he", "eh"))
'ehllo world'
答案 1 :(得分:3)
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')