• python string.py 源码分析 三:maketrans


    l = map(chr, xrange(256)) #将ascii转为字符串
    _idmap = str('').join(l)
    del l
    
    # Construct a translation string
    _idmapL = None #定义一个全局变量
    def maketrans(fromstr, tostr):
        """maketrans(frm, to) -> string
    
        Return a translation table (a string of 256 bytes long)
        suitable for use in string.translate.  The strings frm and to
        must be of the same length.
    
        """
        if len(fromstr) != len(tostr):
            raise ValueError, "maketrans arguments must have same length"
        global _idmapL
        if not _idmapL:
            _idmapL = list(_idmap) #将ascii 字符串转换为列表
        L = _idmapL[:] #列表对象浅拷贝,目的是为了不影响global , or [x for x in _idmapL] or L = list(_idmapL)  or L = copy.copy(_idmapL)
        fromstr = map(ord, fromstr) #功能与chr相反,即将char转换为对应的数字编码
        for i in range(len(fromstr)):
            L[fromstr[i]] = tostr[i] #替换
        return ''.join(L) #重组
  • 相关阅读:
    专业英语阅读(二)
    专业英语阅读(一)
    高精度运算
    高精度运算——加减乘除阶乘
    python常见编程面试题汇总
    python线程
    反射
    单例模式
    生成器、迭代器
    python装饰器
  • 原文地址:https://www.cnblogs.com/bjdxy/p/3198380.html
Copyright © 2020-2023  润新知