2020 python学习第六天————字符串操作和列表操作
1.1 字符串的作用
记录描述性质的状态
1.2 定义方式
在单引号、双引号、三引号内包含的一串字符
1.3 数据类型转换
str可以把任意类型转换成字符串类型
1.4 优先掌握的操作
1.4.1 按索引取值(正向取+反向取)
取出的由单一字符组成的str
变量名 [ 索引 ]
1.4.2 切片(顾头不顾尾,原来字符串不会变)
变量名 [ 起始位置 :结束位置 :步长 ]
起始位置,结束位置和步长都可以省略
起始位置默认值为0
结束位置默认一直到末尾
步长默认值为1
变量名 [ : ] #相当于复制操作
1.4.3 长度
len ( 变量名 ) #统计字符的个数
1.4.4 成员运算in和not in
msg = ‘hello 你好‘
print( "你好" in msg )
print( "你好" not in msg )
1.4.5 移除空白strip
msg=" hello "
res=msg.strip()
默认去掉的是字符串左右两端的空白字符串
可以在括号内填写需要在左右两端去除的字符串
得到的是新字符串,没有改变原来的
1.4.6 切分split
msg="a:b:c:d"
res=msg.split( ‘ : ‘ )
split会以括号内的字符为分界将字符串形式的变量切分成列表
1.4.7 循环
for x in "hello 你好"
for循环可以对字符串进行遍历
1.5 需要掌握的操作
1.5.1 strip,lstrip,rstrip
msg="*****hello*****"
print( msg.strip ( ‘*‘ ) )
删除收尾的字符
print( msg.lstrip ( ‘*‘ ) )
删除左端的字符
print( msg.rstrip ( ‘*‘ ) )
删除右端的字符
1.5.2 lower,upper
msg="aABc你1"
print(msg.lower())
字母全小写
print(msg.upper())
字母全大写
1.5.3 startswith,endswith
msg = ‘abcdef‘
print( msg.startswith( "a" ) )
检查字符串是否是以指定字符串开头
print( msg.endswith( "f" ) )
检查字符串是否是以指定字符串结尾
1.5.4 format的三种玩法
print( ‘a b {} d {}‘ .format( ‘c‘ , ‘e‘ ) )
按照顺序向花括号传值
print( ‘a b {x} d {y}‘ .format( y = ‘e‘ , x = ‘c‘ ) )
根据变量名传值
print(‘a b {0} d {1}‘ .format( ‘c‘ , ‘e‘ ) )
根据位置索引传值
python3.5以上可以使用
x = ‘c‘
y= ‘e‘
print( f"a b {x} d {y}" )
1.5.5 split,rsplit
print( "a:b:c:d" .split( ‘:‘ )
从左往右切分
print( "a:b:c:d" .rsplit( ‘:‘ )
从右往左切分
print( "a:b:c:d" .split( ‘:‘ , 1 )
split可以指定切分几次
1.5.6 join
把列表拼成一个str,列表中的元素必须全部为str类型
‘ ‘.join( list )
1.5.7 replace
print( ‘a b b b‘ .replace( ‘b‘ , ‘a‘ , 1 ) )
replace( ‘你想替换的字符’ , ‘想替换成的字符’ , 替换的次数 )
次数省略为全部替换
1.5.8 isdigit
age="18"
print( age.isdigit() )
判断是非为存数字
1.6 了解操作
1.6.1 find,rfind,index,rindex,count
print("=abcdefab".find("ab"))
查找一个子字符串在大字符串中出现的起始位置,可选参数为在字符串搜索的开始与结束位置。
print("=adcabdefab".rfind("ab"))
从右往左查找一个子字符串在大字符串中出现的起始位置。
print("====".index("ab"))
找不到则报错,而find则会返回-1。
print("=adcabdefab".count(‘a‘))
统计字符串里某个字符出现的次数。
1.6.2 center,ljust,rjust,zfill
print("a".center(10,‘*‘))
设置长度为10,字符串居中,其他用*填充。
print("a".ljust(10,‘*‘))
设置长度为10,字符串靠左,其他用*填充。
print("a".rjust(10,‘*‘))
设置长度为10,字符串靠右,其他用*填充。
print("a".zfill(10))
设置长度为10,字符串靠右,其他用0填充。
1.6.3 expandtabs
print(‘a\tb‘.expandtabs(3))
改变制表符的空格数。
1.6.4 captalize,swapcase,title
print("my name is a".capitalize())
首字母大写。
print("AbCd".swapcase())
大小写反转。
print("my name is a".title())
标题格式,单词首字母大写。
1.6.5 is数字系列
num1=b‘4‘ #bytes
num2=u‘4‘ #unicode,python3中无需加u就是unicode
num3=‘四‘ #中文数字
num4=‘Ⅳ‘ #罗马数字
isdigit():用于b和u格式,即num1和num2
isdecimal():用于u格式,即num2
isnumberic():用于u,中文数字、罗马数字,即num2、num3、num4
三者不能判断浮点数
1.6.5 is其他
print(‘name1‘.isalnum()) #字符串由字母或数字组成
print(‘name1‘.isalpha()) #字符串只由字母组成
print("inputasd".isidentifier()) #判断是否用到了关键字
print(‘name‘.islower()) #判断字符串是不是全是小写
print(‘name‘.isupper()) #判断字符串是不是全是大写
print(‘ ‘.isspace()) #判断字符串是不是全是空格
print("My Name Is".istitle()) #判断字符串是不是标题格式
1.7 类型总结
字符串只能存放一个值
字符串是有序且是不可变类型
2.1 列表的用途
按照位置存多个值
2.2 定义方式
在[]内用逗号分隔开多个任意类型的值
2.3 类型转换
list(传入的可以是任意能够被for循环遍历的类型)
2.4 优先掌握的操作
2.4.1 索引
按索引改、取值(正向存取+反向存取):既可改也可以取
超出索引范围则报错,即不能用这种赋值操作为列表增加值
2.4.2 切片(顾头不顾尾,步长)
res=list [起始位置:结束位置:步数]
起始位置默认值为0
结束位置默认一直到末尾
步长默认值为1
2.4.3 长度
l=[111,222,333,444,555]
print(len(l))
2.4.4 成员运算in和not in
l=[111,222,333,444,555]
print(111 in l)
print(111 not in l)
2.4.5 追加
l=[111,222,333,444,555]
l.append(666)
2.4.6 往指定位置前插入值insert
l=[111,222,333,444,555]
l.insert(0,00)
2.4.7 删除
l=[111,"aaa",222,333,444,555]
1.del
del是通用的、不是列表专属的删除方式
del l[1]
2.remove
列表专属的删除方式之指定元素删除
l.remove("aaa")
3.pop
列表专属的删除方式之指定索引删除
l.pop(1) # 默认删除的是索引-1对应的值
2.4.8 循环
for item in l:
2.5 需要掌握的操作
2.5.1 count
统计某一元素出现的次数
l=[111,222,111,111]
print(l.count(111))
2.5.2 sort
对列表进行排序
l = [10, -1, 3, 2, 11, 7]
l.sort()
l.sort(reverse=True)
reverse=True为反转
2.5.3 clear
清空列表
l.clear()
2.5.4 reverse
反转列表
l.reverse()
2.5.5 extend
一次添加多个值
l=[11,22,33]
l.extend([44,55,66])
2.5.6 copy
拷贝到一个新列表
l2=l1.copy()
等同于l4=l1[:]
2.6 类型总结
列表可以存放多个值
列表是有序的并且是可变类型