python之string.maketrans和str.translate

    xiaoxiao2021-03-25  134

    转载地址:http://blog.csdn.net/skyin333/article/details/8661131

    示例:

    [python]  view plain  copy import string          s = 'abcd--dcba'          # 参数from和to的长度必须一致     table = string.maketrans('''')   # type(table) is 'str'   print(s.translate(table))   # 输出 abcd--dcba      table = string.maketrans('ab''12')   print(s.translate(table))   # 输出 12cd--dc21      # 将先删除'ad',然后再转换   print(s.translate(table, 'ad'))     # 输出 2c--c2  

    doc:

    string. maketrans ( from, to )

    Return a translation table suitable for passing to translate(), that will map each character in from into the character at the same position in to;from and to must have the same length.

    Note

    Don’t use strings derived from lowercase and uppercase as arguments; in some locales, these don’t have the same length. For case conversions, always usestr.lower() andstr.upper().

    str. translate ( table [, deletechars ] )

    Return a copy of the string where all characters occurring in the optional argument deletechars are removed, and the remaining characters have been mapped through the given translation table, which must be a string of length 256.

    You can use the maketrans() helper function in the string module to create a translation table. For string objects, set the table argument to None for translations that only delete characters:

    >>> 'read this short text'.translate(None, 'aeiou') 'rd ths shrt txt'

    New in version 2.6: Support for a None table argument.

    For Unicode objects, the translate() method does not accept the optionaldeletechars argument. Instead, it returns a copy of thes where all characters have been mapped through the given translation table which must be a mapping of Unicode ordinals to Unicode ordinals, Unicode strings or None. Unmapped characters are left untouched. Characters mapped to None are deleted. Note, a more flexible approach is to create a custom character mapping codec using the codecs module (see encodings.cp1251 for an example).

    转载请注明原文地址: https://ju.6miu.com/read-7598.html

    最新回复(0)