python中一些常见的针对字符串的操作

ascii操作

  • ord(char ): 参数为一个字符,return该字符对应的ascii码
  • chr(int ): 参数为一个整数,return该整数在ascii码中对应的字符

索引

  • 字符串分片索引都是左闭右开,即s[i,j]为[i,j),从第i个元素开始(包括第i个元素)到第j个元素结束(不包括第j个元素)
  • 分片格式: [起始位置 : 结束位置 : 步长],其中,步长如果是负数,则说明其实从后往前按步长进行遍历

字符串操作

  • 连接(+): s1 + s2,连接连个字符串对象s1与s2,形成一个新的字符串
  • 重复(*): s * i,将字符串s重复i次并生成一个新的字符串
  • 单字符比较: 比较方式是按照ascii来比较,因此‘a’要大于’A’,这是因为a的ascii码为97,而’A’的ascii码为65
  • in运算符: 用来测试某字符串是否在另一字符串中
  • len(s): 返回字符串s的长度
  • 字符串方法: 可以通过help(str)命令来得到常用的字符串方法(如find()方法等)

常用格式描述符码

格式描述码

格式名称

%s

字符串

%d:

十进制整数

%f:

浮点小数

%e:

浮点指数

note:

  1. 在python中,字符串集合是不可改变的,即假设我们拥有字符串s = “hello”,这时候如果我们用下标的方式修改该字符串的某个字符是非法的,即s[0] = “k”是非法的,如果系那个把字符串s变为kello,我们只能通过s = ‘k’ + s[1 : ]来实现
  2. 字符串方法:
  • x.__add__(y) : 等价于x+y,即实现字符串的连接
  • x.__contains__(y): 等价于y in x,即判断字符串y是否在x中
  • x.__eq__(y): 等价于x==y,即判断字符串x与y是否相等,该判断确定的是值是否相等而不是物理地址
  • x.__ge__(y): 等价于x >= y,即判断x是否大于等于y
  • x.__gt__(y): 等价于x>y,即判断x是否大于y
  • x.__le__(y): 等价于x <= y, 即判断x是否小于等于y
  • x.__lt__(y): 等价于x < y,即判断x是否小于y
  • x.__ne__(y): 等价于x != y,即判断x是否不等于y
  • x.__getitem__(n): 等价于x[n],即获得字符串x中第n个元素
  • x.__getslice__(i, j):等价于x[i : j],即获得字符串中从i到j的分片
  • x.__hash__(): 等价于hash(x),即获得字符串x的哈希值
  • x.__len__(): 等价于len(x),即返回字符串x的长度
  • x.__mod__(y): 等价于x % y
  • x.__mul__(y): 等价于x * y
  • x.__sizeof__(): 获取字符串x在内存中所占的内存大小
  • x.capitalize(): 返回一个新字符串,该字符串的第一个字母变为大写,其余的与字符串x完全一样
  • x.center(width[, fillchar]): 返回一个新的字符串,如果参数width大于x的长度,那么该字符串中间位置字符串为x,两边用可选参数fillchar来填充(默认为空格),如果小于x的长度,则返回的即为x本身
  • x.count(sub[, start[, end]]): 计算字符串sub在字符串x从给start开始到end结束[start, end)的子字符串中出现的次数,其中start与end为可选参数
  • x.endswith(suffix[, start[, end]]): 判断字符串x从start开始到end结束[start, end)的分片是否已suffix字符串为后缀结束
  • x.find(sub [, start [, end]]): 在x字符串从start开始到end结束[start, end)的分片中查找字符串sub并返回找到的字符串对应的最小索引,例如x = “abcd”,sub = “bc”,则x.find(sub)返回的值为1,如果没找到则返回-1
  • x.find(sub [, start [, end]]):从后往查找,返回最大索引
  • x.index(sub [, start [, end]]): 功能类似find,只不过在找不到的时候,会报错而不是返回-1
  • x.rindex(sub [, start [, end]]): 从后往前查找,返回最大索引
  • x.isalpha(): 如果字符串x中所有的元素均为字符,则返回True,否则返回False
  • x.isdigit():如果字符串x中所有的元素均为数字,则返回True,否则返回False
  • x.islower():如果字符串x中所有字符均为小写则返回True,否则返回False
  • isspace(): 如果字符串x中所有字符均为空白字符,则返回True,否则返回False
  • isupper(): 如果字符串x中所有字符均为大写字符,则返回True,否则返回False
  • x.join(y): 将字符串y中的每个元素用字符串x隔开,注意使用x隔开y,而不是y隔开x
  • x.ljust(width [, fillchar]): 返回一个新字符串,该字符串的长度为width,如果width大于x的长度,则新字符串左边由x填充,而右边则用fillchar所指示的字符填充
  • x.rjust(width [, fillchar]): 返回一个新字符串,该字符串的长度为width,如果width大于x的长度,则新字符串右边由x填充,而左边则用fillchar所指示的字符填充
  • x.lower(): 返回一个新字符串,该字符串将x中的字符全部转换为小写字母
  • x.lstrip([chars]):如果最左边的前缀字符串与参数相同,则删除最左边的前缀,否则不变,参数为可选,默认是空格
  • x.rstrip([chars]):如果最右边的后缀字符串与参数相同,则删除最右边的后缀,否则不变,参数为可选,默认是空格
  • x.strip([chars]):如果最左边的前缀字符串或者最右边的后缀字符串与参数相同,则删除最左边的前缀和最右边的后缀,否则不变,参数为可选,默认是空格
  • x.partition(sep):如果在字符串x中找到了字符串sep(从左向右查找,找到第一个作为分割点),则以sep作为分割点,返回一个元组,其中有三部分,分别是(head, sep, tail),sep前面部分为head,后面部分为tail,如果没有找到,则head为x本身,其余两个均为空字符串
  • x.rpartition(sep):如果在字符串x中找到了字符串sep(从右向左查找,找到第一个分割点),则以sep作为分割点,返回一个元组,其中有三部分,分别是(head, sep, tail),sep前面部分为head,后面部分为tail,如果没有找到,则head为x本身,其余两个均为空字符串
  • x.replace(old, new [, count]): 用new字符串代替old字符串,如果count给出了,则只代替前count个old字符串
  • x.split([sep [, maxsplit]]): 用字符串sep将字符串x进行分割,如果有参数maxsplit,则最多利用maxsplit个sep字符串进行分割,后面再遇到的sep字符串的将不再用作分割(从左向右查看)
  • x.rsplit([sep [, maxsplit]]): 用字符串sep将字符串x进行分割,如果有参数maxsplit,则最多利用maxsplit个sep字符串进行分割,后面再遇到的sep字符串的将不再用作分割(从右向左查看)
  • x.swapcase(): 将字符串x中的大小写字母翻转,即将所有的小写字母均换为大写,大写字母均变为小写
  • x.upper():将字符串x中的所有字母均换为大写
  • x.lower():将字符串x中的所有字母均换为小写
  • x.zfill(width):如果字符串x的长度小于width,则在左侧均用0来填充