定義
一個(gè)個(gè)字符組成的有序的序列,是字符的集合
使用單引號(hào)、雙引號(hào)、三引號(hào)
字符串是不可變對(duì)象
Python3起,字符串就是Unicode類型
字符串join連接
-
'string'.join(iterable) -> str
將可迭代對(duì)象連接起來,使用string作為分隔符
可迭代對(duì)象本身的元素都是字符串
返回一個(gè)新的字符串
字符串+連接
-
+ -> str
將2個(gè)字符串連接在一起
返回一個(gè)新的字符串
字符串分割
分割字符串的方法分為兩類
-
split系
- 將字符串按照分隔符分割成若干字符串,并返回 列表
-
split(sep=None, maxsplit=-1) -> list of strings
- 從左至右
- sep指定分割字符串,缺省的情況下空白字符作為分隔符
- maxsplit指定分割的次數(shù),-1表示遍歷整個(gè)字符串
-
rsplit(sep=None, maxsplit=-1) -> list of strings
- 從右至左
- sep指定分割字符串,缺省的情況下空白字符串作為分隔符
- maxsplit指定分割的次數(shù),-1表示遍歷整個(gè)字符串
-
splitlines([keepends=False]) -> list of strings
- 按照行來切分字符串
- keepends指的是否保留行分隔符
- 行分隔符包括\n、\r\n、\r 等
-
partition系
- 將字符串按照分隔符分割成2段,返回這2段和分隔符的元組
-
partition(sep) -> (head,sep,tail)
- 從左至右,遇到分隔符就把字符串分割成兩部分,返回頭,分隔符、尾三部分的三元組;如果沒有找到分隔符,就返回頭、2個(gè)空元素的三元組
- sep分割字符串,必須制定
-
rpartition(sep) -> (head,sep,tail)
- 從右至左,遇到分隔符就把字符串分割成兩部分,返回頭、分隔符、尾三部分的三元組;如果沒有找到分隔符,就返回2個(gè)空元素和尾的三元組
字符串大小寫
-
upper()
- 全大寫
-
lower()
- 全小寫
大小寫,做判斷的時(shí)候用
-
swapcase()
- 交互大小寫
字符串修改
-
replace(old,new[,count]) - str
- 字符串中找到匹配替換為新子串,返回新字符串
- count表示替換幾次,不指定就是全部替換
-
strip([char]) -> str
從字符串兩端去除指定的字符集chars中的所有字符
如果chars沒有指定,去除兩端的空白字符
-
lstrip([char]) -> str
- 從左開始
-
rstrip([char]) -> str
- 從右開始
字符串查找
-
find(sub[,start[,end]]) -> int
- 在指定的區(qū)間[start[,end]],從左至右,查找子串sub,找到返回索引,沒有找到返回-1
-
rfind(sub[,start[,end]]) -> int
- 在指定的區(qū)間[start[,end]],從左至,查找子串sub,找到返回索引,沒有找到返回-1
時(shí)間復(fù)雜度
- index和count方法都是O(n)
- 隨著列表數(shù)據(jù)規(guī)模的增大,而效率下降
字符串判斷
-
endswith(suffix[, start[, end]]) -> bool
- 在指定的區(qū)間[start,end],字符串是否是suffix結(jié)尾
-
startswith(prefix[, start[, end]]) -> bool
- 在指定的區(qū)間[start,end],字符串是否是prefix開頭
字符串判斷is系列
- isalnum() -> 是否是字母和數(shù)字組成
- isalpha() -> 是否是字母
- isdecimal() -> 是否包含十進(jìn)制數(shù)字
- isdigit() -> 是否全部是數(shù)字(0~9)
- isdentifier() -> 是不是字母和下劃線開頭,其他都是字母、數(shù)字、下劃線
- islower() -> 是否都是小寫
- isupper() -> 是否全部大寫
- isspace() -> 是否只包含空白字符串