• 周蓬安.blog的博客—强国博客—人民网 2019-05-10
  • 紫光阁中共中央国家机关工作委员会 2019-05-10
  • 感触名家笔下的端午文化吃香粽原来可以这样文艺 2019-05-09
  • 追梦夺冠游行嘲讽詹皇 百万人面前穿订制T恤羞辱他 2019-04-27
  • 《瘟疫传说》:黑死病恐怖 姐弟在绝望中求生 2019-04-10
  • 陕西国防工业职业技术学院百名大学生志愿者敬老院慰问孤寡老人陕西国防工业职业技术学院百名大学生志愿者敬老院慰问-陕西教育新闻 2019-04-08
  • 西藏拉萨:新家园 新生活 2019-04-08
  • 尊重和保障宗教信仰自由的中国实践 2019-04-06
  • 一敬泯恩仇 俄罗斯队主帅这个动作太暖了 2019-03-20
  • 四大名著剧组首次同台忆往事 经典影视剧如何铸就? 2018-12-07
  • “天眼”凝望 探秘宇宙 2018-12-07
  • 0

    3.8Python下translate方法

    Posted by 撒得一地 on 2016年2月12日 in python教程
    国外稳定加速器推荐    Express | Vypr

    translate方法和replace方法一样,可以替换字符串中的某些部分,但是和前者不同的是,translate方法只处理单个字符。它的优势在于可以同时进行多个替换,有些时候比replace效率高得多。

    使用这个方法的方式有很多(比如替换换行符或者其他因平台而异的特殊字符)。在使用translate转换之前,需要先完成一张转换表。转换表中是以某字符替换某字符的对应关系。使用string??槔锩娴膍aketrans函数就可以完成这个映射表。

    maketrans函数接受两个参数:两个等长的字符串,表示第一个字符串中的每个字符都用第二个字符串中相同位置的字符串替换。比如:

    在python2.X下

    >>>import string #导入string???
    #建立映射表,将字符串中含有的'c','s'替换为'k','z' 
    >>>table = string.makestrans('cs','kz')
    >>>s = "play cs"
    >>>s.translate(map)
    >>>"play kz" 
    

    在python3.X下

    >>> map = str.maketrans('123','abc')
    >>> s = "123123123"
    >>> s.translate(map)
    'abcabcabc'
    

    在比较低的python版本中,translate的第二个参数是可选的,这个参数是用来指定需要删除的字符。而在3.X版本中,要删除的字符则在makestrans参数中指定。比如:

    在python2.X下

    >>> import string
    >>> map = string.maketrans('123', 'abc')
    >>> s = '54321123789'
    #除了转换,还要删除字符串中的字符'7','8'
    >>> s.translate(map, '78')   
    #转换后的字符串没有字符'7','8'           
    '54cbaabc9'                             
    

    在python3.X下

    >>> map = str.maketrans('fff','ddd','12')
    >>> s = "fffdd1234"
    >>> s.translate(map)
    'ddddd34'
    

    总结

    2.X中maketrans和translate函数的签名:

    string.maketrans(from, to)
    
    string.translate(s, table[, deletechars])
    str.translate(table[, deletechars])
    unicode.translate(table)
    

    3.X中maketrans和translate函数的签名:

    static str.maketrans(x[, y[, z]])
    static bytes.maketrans(from, to)
    static bytearray.maketrans(from, to)
    
    str.translate(map)
    bytes.translate(table[, delete])
    bytearray.translate(table[, delete])
    

    从中可以看出,相对于2.X的string??榈膍aketrans方法,3.X中分别提供了三个静态方法用于创建映射表。

    上一篇:

    下一篇:

    相关推荐

    发表评论

    电子邮件地址不会被公开。 必填项已用*标注

    2 + 3 = ?

    网站地图|广东快乐10分开奖直播

    Copyright © 2015-2019 广东快乐10分开奖直播 All rights reserved.
    闽ICP备15015576号-1,版权所有?psz.

  • 周蓬安.blog的博客—强国博客—人民网 2019-05-10
  • 紫光阁中共中央国家机关工作委员会 2019-05-10
  • 感触名家笔下的端午文化吃香粽原来可以这样文艺 2019-05-09
  • 追梦夺冠游行嘲讽詹皇 百万人面前穿订制T恤羞辱他 2019-04-27
  • 《瘟疫传说》:黑死病恐怖 姐弟在绝望中求生 2019-04-10
  • 陕西国防工业职业技术学院百名大学生志愿者敬老院慰问孤寡老人陕西国防工业职业技术学院百名大学生志愿者敬老院慰问-陕西教育新闻 2019-04-08
  • 西藏拉萨:新家园 新生活 2019-04-08
  • 尊重和保障宗教信仰自由的中国实践 2019-04-06
  • 一敬泯恩仇 俄罗斯队主帅这个动作太暖了 2019-03-20
  • 四大名著剧组首次同台忆往事 经典影视剧如何铸就? 2018-12-07
  • “天眼”凝望 探秘宇宙 2018-12-07
  • 内蒙古时时彩软件 晓风彩票软件 彩经网彩票走势图大全 福彩3d独胆王 北京pk10七码雪球计划 幸运农场有几期 大乐透复式计算器 篮球下注让分胜负什么意思 半全场胜平负单场固定 试机号3d 竞技篮彩的窍门 北京赛车场 新疆时时彩高手群 体彩排列三走势图 体彩11选5走势图 湖南幸运赛车综合走势图