Python数据类型——字符串
字符串定义
由数字、字母、下划线组成的一组字符串
字符串列表的两种增长方式:从左到右索引默认从0开始;从右到左索引默认从-1开始
索引&切片
索引:取出数组s中的某一个人元素
strl = 'QingDao'
str1[1] = i
str1[-1] = o
切片:从数组S中取出特定多个元素
形式:str1[start:stop:step](即起点:终点:步长)
【注】:对于切片str[M:N]是取出下标为M到N-1的数组元素
切片的种类:
设str = [2,3,4,5,6]
-
一个参数
-
str[1:]//从下标为1的元素选择到最后一个元素 [4,5,6]
-
str[:3]//从下标为0的元素选择到下标为2的元素,不包括下标3的元素,返回[2,3,4]
-
str[::2] //从下标为0的元开始,最后一个%2为0的下标元素为止 [2,4,6]
-
str[::-1] // 逆序输出所有元素,返回[6,5,4,3,2]
-
-
两个参数
-
str[1:-2]// [3,4]
-
str[-2:3]//第一个参数经过计算大于等于后一个,返回空数组
-
str[-13:3]//第一个参数归零,返回[2,3,4]
【注】:参数为负数时,若负数小于-n,则负数归零;
-
-
三个参数
-
str[::-1]//从头到尾, 反转数组,返回[6,5,4,3,2]
-
str[-1::-2]//从尾到头,返回[6,4,2]
【注】:没有第三个参数时,切片智能从左向右,若第一个参数大于等于第二个参数,返回空数组
【注】:第三个参数<0时, 切片方向可以被改变, 此时没有上述限制 -
字符串运算
-
连接 ' + '
str2 = "Qing" + "dao"
[out] Qingdao
-
重复 '*'
str = "Qing" * 3
[out] QingQingQing
常见转义字符
-
换行 \n
print("QingDao\nUniversity")
[out]
QingDao
University【注】:可以用r"~"表示内部字符不转义
print(r"QingDao\nUniversity")
[out]QingDao\nUniversity
-
\\ 反斜杠; \"双引号; \t制表符
字符串常见方法
-
str.capitalize():即格式化,返回字符串的副本, 其首字母大写,其余字符小写
str = "qing"
str.capitalize()[out] Qing
-
str.count(sub,start,end): 统计某序列中特定子串出现的次数
str = "aaabccabccbabc"
str.count("abc", 2, 5)[out] 1
-
str.endswith(sub): 判断母串是否以子串为后缀结束
str = "aabc"
str.endswith("bc")[out] True
-
str.startswith(sub,start,end): 用于检索母串是否以指定子串开头,如果时返回True;反之返回False
str = "aabc"
str.startswith("ab")[out] False
-
str.find(sub[,start[,end]]):返回母串中子串第一次出现的索引位置,未找到返回-1
str = "aabc"
str.find("ab")[out] 1
-
str.split(sep = None): 使用sep作为分隔符拆开字符串, 返回字符串中单词的列表, 默认为空格
str = "abcbdb"
str.split('b')[out] ['a','c','d','']
-
str.strip([chars]):删除字符串首尾指定字符集chars
str = "QingDao University"
str.strip("Qsty")[out] ingDao Universi
-
str.upper():将串中所有字符转为大写
-
str.lower(): 将串中所有字符转为小写
-
str.join(sub):将序列中的元素以指定的字符连接成一个新的字符串
'-'.join("abc")
[out]a-b-c
字符串重要方法
replace()
描述
将母串中的部分字符替换为新的字符,并返回新的字符串
语法&参数
str.replace(old, new[,max])
- old:旧字符串
- new:新字符串
- max:最大替换次数,可选参数
Ex
str = "this is ..."
print(str.replace("is","was"))
[out]: "this was..."
注:replace不会改变原字符串内容
strip()
描述
用于移除字符串头尾指定的字符(默认为空格或换行符)或字符序列,并返回一个新的字符串
注: 只会删除开头或者结尾的字符,不能删除中间部分的字符
语法及参数
str.strip([chars])
- chars:移除字符串头尾指定的字符序列
Ex.
str = "00000003210Runoob01230000000";
print str.strip( '0' ); # 去除首尾字符 0
str2 = " Runoob "; # 去除首尾空格
print str2.strip();
[out]:
3210Runoob0123
Runoob
transalte()
描述
可以根据给出的转换表进行字符串的转换,还可以过滤指定字符。最后返回新的字符串。
语法&参数
str.transalte(table[,deletechars])
- table:翻译表,通过方法maketrans转换
- deletechars:字符串中要过滤的字符列表
Ex.
from string import maketrans # Required to call maketrans function.
intab = "aeiou"
outtab = "12345"
trantab = maketrans(intab, outtab)
str = "this is string example....wow!!!";
print str.translate(trantab, 'xm');
[out]:th3s 3s str3ng 21pl2....w4w!!!
注:Python2.7之后, translate只有一个参数transtab;再建立转换表时,新旧表长必须相等

浙公网安备 33010602011771号