• 010 字符串的内置方法 二


    isidentifier()

    • 释义
      • 检查字符串是否是有效的 Python 标识符
      • 返回 True or False
    >>> "def".isidentifier()
    True
    >>> "yorkfish".isidentifier()
    True
    >>> "_yorkfish".isidentifier()
    True
    >>> "123yorkfish".isidentifier()
    False
    >>> "yorkfish$".isidentifier()
    False
    >>> "鱼".isidentifier()
    True
    >>> 
    
    • 可以用来检查命名是否规范,但不区分“关键字”

    islower()

    • 释义
      • 检查字符串中所有字符是否均小写
      • 返回 True or False
    >>> "YorkFish".islower()
    False
    >>> "yorkFish".islower()
    False
    >>> "yorkfish".islower()
    True
    >>> "yorkfish123".islower()
    True
    >>> 
    

    isnumeric()

    • 释义
      • 检查字符串中所有字符是否均是数字字符
      • 返回 True or False
    >>> "1234".isnumeric()
    True
    >>> "york1234".isnumeric()
    False
    >>> 
    

    isprintable()

    • 释义
      • 检查字符串是否可打印
      • 返回 True or False
    >>> "YorkFish".isprintable()
    True
    >>> "York Fish".isprintable()
    True
    >>> "York
    Fish".isprintable()
    False
    >>> "York	Fish".isprintable()
    False
    >>> "".isprintable()
    True
    >>> 
    >>> "127".isprintable()
    True
    >>> "127"
    'W'
    >>> "128".isprintable()
    False
    >>> "128"
    '
    8'
    >>> 
    

    isspace()

    • 释义
      • 检查字符串是否只包含空格
      • 返回 True or False
    >>> "".isspace()
    False
    >>> "   ".isspace()
    True
    >>> " 1 ".isspace()
    False
    >>> 
    

    istitle()

    • 释义
      • 检查字符串是否符合标题规则
      • 返回 True or False
    >>> "What Makes a Joke Funny?".istitle()
    False
    >>> "What Makes A Joke Funny?".istitle()
    True
    >>> 
    
    • Python 只是单纯地把每个词切出来,判断首字母是否大写,非首字母是否小写
    • 对标题而言,比如介词要保持原样,这个 istitle() 判断不了

    isupper()

    • 释义
      • 检查字符串是否都是大写字符串
      • 返回 True or False
    >>> "YORKFISH".isupper()
    True
    >>> "YORKFISH2019".isupper()
    True
    >>> "YORKFISh".isupper()
    False
    >>> 
    

    join(sub)

    • 释义
      • 连接字符串
      • 效率高于 +
    >>> '-'.join("YorkFish")
    'Y-o-r-k-F-i-s-h'
    >>> '-'.join(["york", "fish"])
    'york-fish'
    >>> 
    

    ljust(width)

    • 释义
      • 返回一个左对齐的字符串,并使用空格填充至长度为 width 的新字符串
      • 若字符串比 width 长,则原样输出
    >>> "YorkFish".ljust(10)
    'YorkFish  '
    >>> "YorkFish".ljust(5)
    'YorkFish'
    >>> 
    
    • rjust(width) 用法类似,右对齐

    lower()

    • 释义:将字符串中所有的大写字母改为小写
    >>> "YorkFish".lower()
    'yorkfish'
    >>> "YorkFish123".lower()
    'yorkfish123'
    
    • upper() 用法相反,将字符串中所有的小写字母改为大写

    lstrip()

    • 释义:去掉字符串左侧第一波连续的空格
    • 示例
    >>> "    YorkFish".lstrip()
    'YorkFish'
    >>> 
    
    • rstrip() 用法类似,去掉字符串右侧第一波连续的空格
    • strip() 用法类似,去掉字符串首尾的第一波连续的空格

    maketrans(x, y=None, z=None, /)

    Python3.4 起,maketrans() 成为了内建函数

    • 释义
      • 返回一个可用于 str.translate() 的转换表,即用于给 translate() 创建字符映射转换表
      • 只有一个参数,它必须是一个有映射关系的数据
      • 有两个参数,它们必须是长度相等的字符串,并且在生成的字典中,x 中的每个字符将映射到字符在 y 中的相对应的位置
      • 有第三个参数,它必须是字符串,其字符在结果中将映射为 None,即表示要删除的字符
    • 示例见下面的 translate(table)

    translate(table)

    • 释义:
      • 使用给定的转换表替换字符串中的每个字符
      • 它必须是 Unicode 序数到 Unicode 序数、字符串或 None 的映射
      • 该表必须通过 __getitem__ 实现查找/索引,例如字典或列表
      • 如果此操作引发 LookupError,则不改变字符
      • 映射到 None 的字符将被删除

    例1

    >>> a = str.maketrans("ABCDE", "12345")  # 创建字符映射转换表
    >>> b = str.maketrans("ABCDE", "12345", "789")  # 创建字符映射转换表,并删除指定字符
    >>> "ABCDE 67890 abcde".translate(a)
    '12345 67890 abcde'
    >>> "ABCDE 67890 abcde".translate(b)
    '12345 60 abcde'
    >>> 
    

    例2

    >>> "abc".translate(str.maketrans({'a':'x', 'b':'y', 'c':'z'}))
    'xyz'
    >>> 
    >>> "abc".translate(str.maketrans('abc', 'xyz'))
    'xyz'
    >>> 
    >>> "abc".translate(str.maketrans('abc', 'xyz', 'b'))
    'xz'
    >>> 
    
    • 别想复杂了,就是一个“翻译”小工具
    • 可用于 PythonChallenge 的第一题

    partition(sub)

    • 释义
      • 如果找到子字符串 sub,把字符串分成一个三元组 (pre_sub, sub, fol_sub)
      • 若字符串中不包含 sub,则返回 (原字符串, '', '')
    >>> "YorkFishIsNotFish".partition('F')
    ('York', 'F', 'ishIsNotFish')
    >>> "YorkFishIsNotFish".partition('A')
    ('YorkFishIsNotFish', '', '')
    >>> 
    >>> "YorkFishIsNotFish".rpartition('F')  # 顺便看看 rpartition()
    ('YorkFishIsNot', 'F', 'ish')
    >>> 
    
    • rpartition(sub) 是从右边开始查找,见上例
  • 相关阅读:
    MillerRabin
    BM算法总结
    高斯消元处理自由变元的方法
    [IOI2019]矩形区域
    费用流处理负圈的方法
    回文自动机(PAM)总结
    [TJOI2017]龙舟
    luogu P2252 [SHOI2002]取石子游戏|【模板】威佐夫博弈
    博弈论
    构造
  • 原文地址:https://www.cnblogs.com/yorkyu/p/10268648.html
Copyright © 2020-2023  润新知