Why doesn't str.translate work in Python 3?

后端 未结 1 1392
梦毁少年i
梦毁少年i 2020-11-28 12:12

Why does \'a\'.translate({\'a\':\'b\'}) return \'a\' instead of \'b\'? I\'m using Python 3.

相关标签:
1条回答
  • 2020-11-28 12:39

    The keys used are the ordinals of the characters, not the characters themselves:

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

    It's easier to use 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.
    
    0 讨论(0)
提交回复
热议问题