为什么不str.translate在Python 3中的工作?

为什么'a'.translate({'a':'b'})返回'a'而不是'b' ? 我正在使用Python 3。

使用的键是字符的序号,而不是字符本身:

 'a'.translate({ord('a'): 'b'}) 

使用str.maketrans更容易

 >>> 'a'.translate(str.maketrans('a', 'b')) 'b' >>> help(str.translate) Help on method_descriptor: translate(...) S.translate(table) -> str Return a copy of the string S, where all characters have been mapped through the given translation table, which must be a mapping of Unicode ordinals to Unicode ordinals, strings, or None. Unmapped characters are left untouched. Characters mapped to None are deleted.