zoukankan      html  css  js  c++  java
  • Python容器篇 1 -- 字符串

    Python中有5种类型的容器

    1. 字符串
    2. 列表
    3. 元组
    4. 字典
    5. 集合

    字符串

    表现形式: "str"和'str'或者"""str"""和'''str'''

    • 单引号, 双引号表示的字符串通常用在变量赋值中
    • 而三引号表示的字符串通常来说是注释

    访问字符串中的元素

    • 通过下标/索引的方式去访问单个元素
    • 通过切片的方式截取多个元素

    下标/索引的顺序

    • 正序: 从0开始, 最后一个元素是 len(str)-1
    • 倒序: 从-1开始, 最后一个元素是 -len(str)

    切片: [start: end: step]

    • 从第start位元素开始, 直到end之前一位元素为止, 间隔是step
    # 举例: 
    str = "ABCDEFG"
    str[0:4:1]  # 是 "ABCD"
    str[-1:-4:-1]  # 是 "GFE"
    
    • 如果省略步长, 那么默认值是 1, 如果省略开始位, 那么默认值是0, 省略结束位, 默认值是len(str)
    • 取所有元素 str[ : ] str[ : : ]
    • 从下标为x的元素一直截取到结尾 str[x: ]
    • 从第一个元素开始一直截取到y前面的一个元素 str[ :y]
    • 以步长为a正序访问所有元素 str[ : : a]
    • 以步长为b倒序访问所有元素 str[ : : -b]
    • 反转字符串(倒序访问每一个元素) str[ : : -1]
    • 切片截取操作不会影响原字符串变量, 而是生成一个新的字符串变量

    字符串类型的常用方法

    查找

    1. str.find("要查的部分", start, end) # find方法时字符串特有的查找方法
      • 默认start=0, end=len(str)
      • 找到返回 "要查的部分" 开始位置的下标
      • 找不到返回 -1
    2. str.index("要查的部分", start, end)
      • 默认start=0, end=len(str)
      • 找到返回 "要查的部分" 开始位置的下标
      • 找不到则会直接抛出异常 ValueError

    统计出现次数

    1. str.count("要统计的部分", start, end)
      • 默认start=0, end=len(str)
      • 返回数字型结果

    替换

    1. str.replace(str1, str2, count)
      • 把str1替换成str2, 置于替换几次就看count了
      • 默认 count=str.count(str1), 也就是全部替换

    分隔

    1. str.split(str="分隔依据", maxsplit)
      • maxsplit存在, 那么仅仅把字符串分成 maxsplit+1 个部分
      • 分隔依据可以不写, 默认是按照空白字符(''' '' ')来分隔
      • 如果存在分隔依据, 那么按照分隔依据去分隔, 但是结果中会把分隔依据剔除掉
      • 得到的结果默认是list类型的一个列表 <class 'list'>

    插空加入

    1. str.join(alist)
      • 把字符串str当作内容插入到alist中形成另一个字符串

    替换, 分隔, 插空加入这三种操作都不会影响原来的str, 而是返回一个新的str

    举例: 
    alist = ["a", "b", "c"] 
    str="_"
    str.join(alist)的结果是 "a_b_c"
    

    其他比较重要的常用方法

    大小写变换

    • 第一个字符如果是字母就变成大写 .capitalize() # 应该比较适合处理英文文本
    • 每一个单词的首字母大写 .title()
    • 全部换成小写字母 .lower()
    • 全部换成大写字母 .upper()

    检测开头结尾的字符

    • 检测是否以某段字符串开头 .startswith("...") # 注意s
    • 检测是否以某段字符串结尾 .endswith("...") # 注意s

    对齐方式

    • 左对齐, 并以空格填充至某个长度 .ljust(width)
    • 右对齐, 并以空格填充至某个长度 .rjust(width)
    • 居中对齐, 并以空格填充至某个长度 .center(width)

    删除空白符

    • 删除字符串左边起的空白符 .lstrip()
    • 删除字符串右边起的空白符 .rstrip()

    查找

    • 类似于find方法, 但从最右边开始找 .rfind("...", start, end)
    • 类似于index方法, 但从最右边开始找 .rindex("...", start, end)

    分割

    • 把字符串根据分割依据str分割成, str之前, str, str之后三个部分 .partition(str)
    • 类似于partition, 但从最右边开始 .rpartition(str)
    • 按照行进行分割, 返回一个列表, 每个元素就是字符串的每一行 .splitlines()

    判断内容的类型

    • 是否只含字母 .isalpha()
    • 是否只含数字 .isdigit()
    • 是否只含字母和数字 .isalnum()
    • 是否只含空格字符 .isspace()
  • 相关阅读:
    详解实现Android中实现View滑动的几种方式
    一起写一个Android图片轮播控件
    Java核心技术点之多线程
    深入了解整数在计算机内部的表示
    Java核心技术点之接口
    Java核心技术点之内部类
    配置resin web方式部署项目
    rsa加密算法,前后端实现。
    引用百度bcebos jar 503问题
    HashMap get()返回值问题
  • 原文地址:https://www.cnblogs.com/sn0wp3ak/p/13820391.html
Copyright © 2011-2022 走看看