Python 字符串常用方法

字符串的定义

字符串就是一串字符(Python不区分字符和字符串),Python字符串是不可变的有序集合。

字符串可以使用一对单引号和双引号定义:

  • 若字符串内部需要使用双引号,常以单引号定义字符串;
  • 若字符串内部需要使用单引号,常以双引号定义字符串;
  • 若字符串内部同时包含单引号和双引号,则可以使用转义符;
  • 除了转义符,还可以使用原始字符串(raw string),即在字符串的定义前面加上一个"r"。

多行字符串可以使用三个引号来定义,三引号之间,所有的引号、换行符等特殊字符都会被认做普通字符。

In [1]: message = ‘‘‘Hello, world. \n
   ...: Hello, Python.
   ...: ‘‘‘

In [2]: message
Out[2]: ‘Hello, world. \n \nHello, Python.\n‘

字符串小特性

两个相连的字符串会自动组成一个新的字符串(在Python处理较长的字符串时并保证每行代码不超过特定字符数限制时较为有用)

In [3]: test = "Hello" "World"

In [4]: test
Out[4]: ‘HelloWorld‘

 

字符串是不可变的有序集合

Python字符串是不可变的,因此不能直接对字符串进行修改,但是可以通过字符运算、切片操作、格式化表达式和字符串方法调用等方式创建新的字符串,再将结果赋值给最初的变量名,达到修改字符串的目的。

注意:对Python字符串的每次操作都会创建一个新的字符串,新的字符串会占用一块独立的内存。

字符串的访问

通过索引访问

In [4]: test
Out[4]: ‘HelloWorld‘

In [5]: test[0]
Out[5]: ‘H‘

In [6]: test[-1]
Out[6]: ‘d‘

通过切片访问

In [4]: test
Out[4]: ‘HelloWorld‘

In [7]: test[0:]
Out[7]: ‘HelloWorld‘

In [8]: test[::-1]
Out[8]: ‘dlroWolleH‘

字符串的常用方法

通用操作

  • 索引&切片访问
  • del(s):删除字符串(内存释放)
  • len(s):判断字符串长度
  • ‘x‘ in s:判断子串是否存在于字符串的逻辑

判断类

  • string.isspace():若string中只包含空格、制表符、换行符,并且非空,则返回True
  • string.isalnum():若string至少有一个字符并所有字符都是字母或数字,则返回True
  • string.isalpha():若string至少有一个字符并所有字符都是字母,则返回True
  • string.isdecimal():若string至少有一个字符并所有字符都是数字,则返回True
  • string.istitle():若string是标题化的(每个单词的首字母大写),则返回True
  • string.islower():若string中至少包含一个区分大小写的字符,并且均是小写,则返回True
  • string.isupper():若string中至少包含一个区分大小写的字符,并且均是大写,则返回True
  • string.startswith(str):判断字符串是否以str开头,是则返回True
  • string.endswith(str):判断字符串是否以str结尾,是则返回True

查找类

  •  string.find(str, start= , end= ):查找子串出现在字符串中的位置,若str包含在start和end指定范围内,则返回开始的索引值,否则返回-1
  •  string.rfind(str, start= , end= ):与find函数类似,区别在于rfind从后向前查找
  •  string.index(str, start= , end= ):与find函数类似,区别在于若查找失败,抛出ValueError异常
  •  string.rindex(str, start= , end= ):与index函数类似,区别在于rindex从后向前查找

大小写转换

  • string.upper():将string转换为大写
  • string.lower():将string转换为小写
  • string.capitalize():将string的第一个字符大写
  • string.title():将string的每个单词的首字母大写
  • string.swapcase():翻转string中的大小写

拆分与连接

  • string.split(str):以str为分隔符切片string,将一个字符串拆分成一个字符串列表
  • string.join(seq):以string为分隔符,将seq中所有元素合并为一个新的字符串

去除空白字符

  • string.lstrip():去除string左边(首部)的空白字符
  • string.rstrip():去除string右边(尾部)的空白字符
  • string.strip():去除string左右两边的空白字符

也可以给strip方法传递参数,参数中的所有字符都可以被裁减