字符串:
- 一个个字符组成的有序的序列,是字符的集合。
使用单引号、双引号、三引号引住的字符序列。
字符串是不可变对象,python 3开始字符串是Unicode类型
字符串定义 初始化
字符串元素访问
- 字符串支持使用索引访问
不支持一起多个索引
-
有序的字符集合,字符序列
-
可迭代
字符串join连接*
“string”.join(iterable)->str
- 将可迭代对象连接起来,使用string作为分隔符
可迭代对象本身元素都是字符串
返回一个新的字符串
字符串连接
使用+将两个字符串连接在一起,返回一个新的字符串
字符串分割
切割字符串的方法分为两类:
- split系
将字符串按照分隔符分割成若干字符串,并返回列表 - partition系
将字符串按照分隔符分割成2段,返回这两段和分隔符的元组
split(sep=None,maxsplit=-1)->list of strings
-
从左到右
sep制定分割字符串,缺省的情况下空白字符串作为分隔符
maxsplit指定分割的次数,-1表示遍历整个字符串
切割是指直接去掉指定字符,可超界
rsplit(sep=None,maxsplit=-1)->list of strings -
从右到左
sep制定分割字符串,缺省的情况下空白字符串作为分隔符
maxsplit指定分割的次数,-1表示遍历整个字符串
切割是指直接去掉指定字符,可超界
splitlines([keepends])->list of string -
按照行来切分字符串
keepends指的是是否保留行分隔符
行分隔符包括\n、\r\n、\r等
partition(sep)->(head,sep.tail)-
从左到右,遇到分隔符就把字符串分割成两部分,返回头、分隔符、尾三部分的三元组;如果没有找到分隔符,就返回头、2个空元素的三元组
sep分隔符字符串,必须指定
rpartition(sep)->(head,sep.tail) -
从右到左,遇到分隔符就把字符串分割成两部分,返回头、分隔符、尾三部分的三元组;如果没有找到分隔符,就返回头、2个空元素的三元组
sep分隔符字符串,必须指定
字符串大小写
-
-
upper():全大写
-
lower():全小写
-
swapcase():交换大小写
字符串排版
- title() - > str:标题的每个单词都大写
- capitalize() ->str:首个单词大写
字符串修改
replace(old,new,[count]) - >str
- 字符串中找到匹配替换为新字串,返回新字符串
- count表示替换了几次,不指定就是全部替换
strip([chars]) - >str - 从字符串两端去除指定的字符集chars中的所有字符
- 如果chars没有指定,去除两端的空白字符
- lstrip([chars]) ->str:从左开始
- rstrip([chars]) ->str:从右开始
字符串查找
find(sub,[start,[end]])- >int:在指定区间[start,end],从左到右,查找字串sub。找到返回索引,没找到返回-1
rfind(sub,[start,[end]])- >int:在指定区间[start,end],从右到左,查找字串sub。找到返回索引,没找到返回-1
index(sub,[start[end]]) - >int
在指定的区间[start,end],从左到右,查找字串sub,找到返回索引,,没有找到抛出异常ValueError
rindex(sub,[start[end]]) - >int
在指定的区间[start,end],从右到左,查找字串sub,找到返回索引,,没有找到抛出异常
count([sub,start[end]]) - > int
在指定的区间[start,end],从左到右,统计字串sub出现的次数
时间复杂度:
- index和count方法都是O(n),随着列表数据规模的增大效率降低
len(string)
-
返回字符串的长度,即字符的个数
字符串判断
endswith(suffix,[start,[end]]) - >bool
- 在指定的区间[start,end],字符串是否是suffix结尾
startswith(prefix,[start,[end]]) - >bool
字符串判断is系列
- isalnum()- >是否是字母和数字组成
salpha()是否是字母
isdecimal()是否只包含十进制数字
isdigit()是否全是数字(0-9)
isidentifier()是不是字母和下划线开头,其他都是字母、数字、下划线
islower()是否都是小写
isupper()是否都是大写
isspace()是否只包含空白字符