美文网首页编程地带
punctuation与translate

punctuation与translate

作者: MA木易YA | 来源:发表于2018-12-03 22:19 被阅读0次

    这两个都是python内置的模块,都是用于字符串操作,translate可以直接使用,但是在py3中需要有一个表格进行映射,详情可参考菜鸟,punctuation需要引入string库,最后会结合两者展示作用

    translate()方法

    描述

       Python translate() 方法根据参数table给出的表(包含 256 个字符)转换字符串的字符, 要过滤掉的字符放到 del 参数中。

    语法

       translate()方法语法:

    • str.translate(table[, deletechars]);

    参数

    1. table -- 翻译表,翻译表是通过maketrans方法转换而来。
    2. deletechars -- 字符串中要过滤的字符列表。

    返回值

    • 返回翻译后的字符串。

    实例

    #!/usr/bin/python
     
    from string import maketrans   # 引用 maketrans 函数。
     
    intab = "aeiou"
    outtab = "12345"
    trantab = maketrans(intab, outtab)
     
    str = "this is string example....wow!!!";
    print str.translate(trantab);
    
    • 也可以不定义table翻译表,直接设置成空字符串即可,可用来替换掉字符串中不需要的部分,类似批量replace作用

    punctuation

    String模块包含大量实用常量和类,以及一些过时的遗留功能,并还可用作字符串操作。

    这里就是字符串常量中的一个小方法

    • string.punctuation -> 所有标点字符
    import string
    
    if __name__ == '__main__':
        print(string.punctuation)
    
    #输出
    !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~
    

    字符串常量的其他方法

    image.png

    常用案例

      小编是最近在练习统计文本内容的时候接触的这个模块,相比与re正则这样处理更加简便快捷,可以使用translate结合punctuation筛去所有的标点符号,然后得到返回的列表,对里面的元素遍历就能得到具体的文本单词个数了,这里的s是返回的列表

        f = "随意定义一个字符串或者读取文件都可以"
        #去除符号
        table = str.maketrans("", "", string.punctuation)
        s = f.translate(table)
        li = s.split()
        print(len(li))
    

    相关文章

      网友评论

        本文标题:punctuation与translate

        本文链接:https://www.haomeiwen.com/subject/huaucqtx.html