1.切片的定义
用于处理列表的部分元素,Python称之为切片
结构: [start:end:step] 不指定step(步长)时,默认step(步长)为1
一般是不加步长,即取一段连续的索引
对于step:
(1)当step为负数时,即取反
a = 'ABCDE'
print(a[::-1])
print(a[::-2])
EDCBA
ECA
可以看到,步长为-1则是取反且取得是一段连续的索引,而为-2的时候,则是取反的同时按照步长去取索引值
(2)step为正数时,则按照从左到右的顺序按步长取值
即步长的符号决定了取值的方向,为正则从左往右取,为负则从右往左取,其值决定了取那些数据
对于
a = 'ABCDE'
print(a[0:6:-1])
其输出的是空,原因就在于其取值方向,负数代表从右往左取值,而对于切片是索引0-6,而取值是按照从右往左取值,0的左边没有值,所以取得就是空的
要想有取值,这时我们切片的方向也应该是从右往左,即
a = 'ABCDE'
print(a[-1:-6:-1])
print(a[6:0:-1])
EDCBA
EDCBA
切片的起点和终点已经决定了其排列的顺序,对于0-6,其排列就是ABCDE,对于-1到-6(或者6到0)其排列就是EDCBA,而步长及其符合只是决定了最终取值的顺序和内容,并不会改变其排列的顺序,所以这也就是为什么print(a[0:6:-1])输出的是空的原因。
2.常用方法--以下来自菜鸟教程
capitalize() 将字符串的第一个字符转换为大写
count() 用于统计字符串里某个字符出现的次数。可选参数为在字符串搜索的开始与结束位置。
str="www.runoob.com"
sub='o'
print ("str.count('o') : ", str.count(sub))
sub='run'
print ("str.count('run', 0, 10) : ", str.count(sub,0,10))
str.count('o') : 3
str.count('run', 0, 10) : 1
endswith() 用于判断字符串是否以指定后缀结尾,如果以指定后缀结尾返回 True,否则返回 False。可选参数 "start" 与 "end" 为检索字符串的开始与结束位置。
startswith() 检查字符串是否是以指定子字符串 substr 开头,是则返回 True,否则返回 False。如果beg 和 end 指定值,则在指定范围内检查。
find() 测字符串中是否包含子字符串 str ,如果指定 beg(开始) 和 end(结束) 范围,则检查是否包含在指定范围内,如果指定范围内如果包含指定索引值,返回的是索引值在字符串中的起始位置。如果不包含索引值,返回-1。
rfind() 类似于 find()函数,不过是从右边开始查找.
index() 方法检测字符串中是否包含子字符串 str ,如果指定 beg(开始) 和 end(结束) 范围,则检查是否包含在指定范围内,该方法与 python find()方法一样,只不过如果str不在 string中会报一个异常。
rindex() 类似于 index(),不过是从右边开始.
isalpha() 如果字符串至少有一个字符并且所有字符都是字母或中文字则返回 True, 否则返回 False
isdigit() 如果字符串只包含数字则返回 True 否则返回 False
islower() 如果字符串中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是小写,则返回 True,否则返回 False
isupper() 如果字符串中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是大写,则返回 True,否则返回 False
join(seq) 以指定字符串作为分隔符,将 seq 中所有的元素(的字符串表示)合并为一个新的字符串
s1 = "-"
s2 = ""
seq = ("r", "u", "n", "o", "o", "b") # 字符串序列
print (s1.join( seq ))
print (s2.join( seq ))
r-u-n-o-o-b
runoob
len(string) 返回字符串长度
ljust() 方法返回一个原字符串左对齐,并使用空格填充至指定长度的新字符串。如果指定的长度小于原字符串的长度则返回原字符串。(在处理二进制时添加指定位置为多少数据时常用)
默认为空格,可指定填充字符
str = "Runoob example....wow!!!"
print (str.ljust(50, '*'))
Runoob example....wow!!!**************************
rjust() 返回一个原字符串右对齐,并使用fillchar(默认空格)填充至长度 width 的新字符串
lower() 转换字符串中所有大写字符为小写
upper() 转换字符串中的小写字母为大写
swapcase() 将字符串中大写转换为小写,小写转换为大写
replace() 方法把字符串中的 old(旧字符串) 替换成 new(新字符串),如果指定第三个参数max,则替换不超过 max 次。
str = "www.w3cschool.cc"
print ("菜鸟教程旧地址:", str)
print ("菜鸟教程新地址:", str.replace("w3cschool.cc", "runoob.com"))
str = "this is string example....wow!!!"
print (str.replace("is", "was", 3))
菜鸟教程旧地址: www.w3cschool.cc
菜鸟教程新地址: www.runoob.com
thwas was string example....wow!!!
split() 通过指定分隔符对字符串进行切片,如果第二个参数 num 有指定值,则分割为 num+1 个子字符串。
str = "this is string example....wow!!!"
print (str.split( )) # 以空格为分隔符
print (str.split('i',1)) # 以 i 为分隔符
print (str.split('w')) # 以 w 为分隔符
['this', 'is', 'string', 'example....wow!!!']
['th', 's is string example....wow!!!']
['this is string example....', 'o', '!!!']
strip() 在字符串上执行 lstrip()和 rstrip(),去除字符串左右两边空格时常用