第4讲 python中的数据结构
1、python中的数据类型
整型int 字符串str 列表list 元组tuple 集合set 字典 dict 布尔值 (真假)
2、python 中的索引
str1 = 'python' #定义一个变量str1 ,把python字符串赋值给str1
正向索引 0 1 2 3 4 5 是从0开始 从左往右
p y t h o n
负向索引 -6 -5 -4 -3 -2 -1 从-1开始 从右往左
p y t h o n
1)正向索引取值
print(str1[0]) #打印结果 p
print(str1[3]) #打印结果 h
print(str1[5]) #打印结果 n
print(str1[6]) #IndexError: string index out of range
2)负向索引取值
print(str1[-1]) #打印结果 n
print(str1[-4]) #打印结果 t
print(str1[-7]) #IndexError: string index out of range
python 中的切片
3、切片的语法:[start_index : end_index : step]
解释说明:start_index表示起始索引 end_index表示结束索引
step表示步长,步长不能为0,且默认值为1
注意:切片操作是指按照步长,截取从起始索引到结束索引,但不包含结束索引(也就是结束索引减1)的所有元素。
解释:
1)包含开始索引,不包含结束索引
2)step如果不写默认是1,step如果是整数,则从左往右取数,step如果为负数,则从右往左
3)step为1是挨个取,为2则是隔一个取一个,step为3,就是隔两个取一个
4)开始索引和结束索引如果没有值,则可以是开始也可以是结尾,取决于step大的值是正数还是负数
str1 = 'python'
print(str1[1:3]) #yt (step默认是1,从左往右取值,结束索引减一)
print(str1[2:5]) #tho(step默认是1,从左往右取值,结束索引减一)
print(str1[1:6]) #ython(step默认是1,从左往右取值,结束索引减一)
print(str1[:4]) #pyth(没有开始索引,step是正数,从左往右取数,开始全部取完,结束索引减一)
print(str1[1:]) #ython(没有结束索引,step是正数,从左往右,结束全部取完)
print(str1[1:5:2]) #yh(先找1:5的索引值,然后隔一个取一个)
print(str1[-1:-5]) #打印为空(step是正数,从左往右取数,-5都取不到)
print(str1[-1:-5:-1]) #noht(step是负数,从右往左取数)
print(str1[-5:-1]) #ytho
print(str1[-5:-1:-1]) #打印为空
print(str1[::]) #python
print(str1[::-1]) #nohtyp 【字符串的反转 重要】
4、python 中的字符串函数
函数:表示每个输入值对应唯一输出的值的一种关系
1)capitalize():首字符大写 是一个函数
str1 = 'python'
str2 = 'hello_python'
print(str1.capitalize()) #结果Python 可以使首字母大写
print(str1.title()) #Python title()也是一个函数,首字母大写
print(str2.title()) #Hello_Python 可以使连接的首字符也大写
2)count():统计具体字符出现的次数
str1 = 'hellopython'
print(str1.count('h')) #结果 2 统计字母出现的次数
3)join():把集合中的字符按自定义的分隔符连接在一起
str1 = 'python'
print(''.join(str1)) #结果python 用*分隔符连接python这个字符串
4)split():把字符串通过指定标识符进行分割
str1 = 'python'
print(str1.split('')) #结果['python'] 指定的分割符不在python字符串中则返回一个列表
# 这个字符串作为这个列表的元素
print(str1.split('h')) #['pyt', 'on'] 指定的分割符h在字符串中则返回一个列表,且把这个分割符去掉,变成列表多个元素值
练习题:
通过所学的知识把hello_python 转化为HelloPython
str1 = 'hello_python'
s = str1.title().split('_') #是一个列表['hello','python']
# print(s[0]+s[1]) #HelloPython
for i in s:
print(i,end="") #end ="" 不换行
5)strip(ab):删除字符串开头和结尾有a或b的字符
str1 = 'abcdeabfgab'
str2 = 'bacdeabfgab'
print(str1.strip('ab')) #结果cdeabfg
print(str2.strip('ba')) #cdeabfg
6)lstrip(ab):删除字符串开头有ab序列字符
str1 = 'abcdeabfgab'
print(str1.lstrip('ab')) #cdeabfgab
7)rstrip(ab):删除字符串结尾有ab序列字符
str1 = 'abcdeabfgab'
print(str1.rstrip('ab')) #abcdeabfg
8)startswith():判断字符串是否以什么开始
str1 = 'python'
print(str1.startswith('p')) #True
print(str1.startswith('o')) #False
9)endswith():判断字符串是否以什么结束
print(str1.endswith('n')) #True
name = input('请输入你要上传的文件:')
if name.endswith('.txt'):
print('上传成功')
else:
print('上传失败')
10)find()/rfind():字符串查询find()是左边开始查,rfind()从右边开始查,
结果 显示下标
str1 = 'python'
str2 = 'abcabc'
print(str1.find('y')) #索引为1
print(str1.rfind('n')) #索引为5 一般是正索引
print(str2.rfind('c')) #索引为5 一般是正索引
11)replace():replace(substring,newstring,max) substring表示被替换的字
符串,newstring要替换字符串,max表示替换的次数
str1 = 'abcdabcd'
print(str1.replace('a','t')) #tbcdtbcd 如果没有次数默认全部替换,把a字符替换成t字符
print(str1.replace('a','t',1)) #tbcdabcd 这里把a字符替换成t字符,替换一次
12)lower():方法转换字符串中所有大写字符为小写
str1 = 'PYTHON'
str2 = 'Python'
print(str1.lower()) #python
print(str2.lower()) #python
13)upper():将字符串中的所有小写字符转换为大写字母输出
str1 = 'python'
str2 = 'Python'
print(str1.upper()) #PYTHON
print(str2.upper()) #PYTHON
14)isdigit():判断字符串中是否全为数字
str1 = '12345'
str2 = 'abc123'
print(str1.isdigit()) #True
print(str2.isdigit()) #False
15)isalpha():判断字符串中是否全为字母
str1 = 'python'
str2 = 'abc123'
print(str1.isalpha()) #True
print(str2.isalpha()) #False
16)isalnum():判断字符串当中是否全都为数字,全为字母,或者数字字母组合 返回布尔值:
True和False 如果有特殊符号就是否
str1 = 'python'
str2 = 'abc123'
str3 = '1234'
str4 = '123@'
print(str1.isalnum()) ##True
print(str2.isalnum()) #True
print(str3.isalnum()) #True
print(str4.isalnum()) #False
17)istitle():判断字符串中首字母是否为大写,其他是否为小写,其他不为小写则为否
str1 = 'Python'
str2 = 'pYthon'
str3 = 'PYTHON'
print(str1.istitle()) #True
print(str2.istitle()) #False
print(str3.istitle()) #False
18)isupper()/islower():is开头的就是判断一个字符串是否展示为都是大写或者都是小写
str1 = 'PYTHON'
str2 = 'python'
str3 = 'Python'
print(str1.isupper()) #True
print(str3.isupper()) #False
print(str2.islower()) #True
print(str3.islower()) #False
5、python 中的列表 用 list = []
1)定义一个列表一般使用list表示 []
list1 = ['dcs','多测师',88,'test']
print(list1) #['dcs', '多测师', 88, 'test']
print(type(list1)) #
2)定义列表的第二种方法
str1 = 'duoceshi' #定义一个变量为字符串
list1 = list(str1) #通过list方法把str1转化为列表
print(list1) #['d', 'u', 'o', 'c', 'e', 's', 'h', 'i']
3)列表中的函数
①索引赋值
str1 = 'duoceshi' #定义一个变量为字符串
list1 = list(str1)
# print(list1) #['d', 'u', 'o', 'c', 'e', 's', 'h', 'i']
list1[2]= 'dcs' #把列表中索引为2的值替换为dcs
print(list1) #['d', 'u', 'dcs', 'c', 'e', 's', 'h', 'i']
②切片赋值
str1 = 'duoceshi' #定义一个变量为字符串
list1 = list(str1)
# print(list1) #['d', 'u', 'o', 'c', 'e', 's', 'h', 'i']
list1[2:] = 'dcs' #把列表索引为2的后面的所有值替换为dcs 赋值
print(list1) #['d', 'u', 'd', 'c', 's']
③append函数:添加一个元素(任意数据类型都可以添加)
list1 = ['dcs','多测师',88,'test']
list1.append('666') #往list1这个列表中添加一个元素666,默认添加到后面
print(list1) #['dcs', '多测师', 88, 'test', '666']
④extend函数:连接两个列表
list1 = ['dcs','多测师',88,'test']
list2 = ['111','222']
list3 = '123'
list4 = 123
# list1.extend(list2) #拼接两个列表 把list1和list2拼接在一起
# print(list1) #['dcs', '多测师', 88, 'test', '111', '222']
# list1.extend(list3) #['dcs', '多测师', 88, 'test', '1', '2', '3']
list1.extend(list4) #extend 可以拼接列表和字符串,不能拼接整型
print(list1)
注意:
extend与append方法的相似之处在于都是将新接收到参数放置到已有列表的后面
append方法可以接收任意数据类型的参数,并且追加到list尾部
extend方法一般和列表还有字符串进行拼接。不能和整型拼接
⑤insert(index,value)函数:在指定位置插入一条数据
list1 = ['dcs', '多测师', 88, 'test']
list1.insert(1,'1234')
print(list1) #['dcs', '1234', '多测师', 88, 'test']
⑥remove函数:移除元素
list1 = ['dcs', '多测师', 88, 'test']
list1.remove(88)
print(list1) #['dcs', '多测师', 'test']
list2 = [1,2,3,4,2,4]
list2.remove(2)
print(list2) #[1, 3, 4, 2, 4] 相同元素只会删除第一个
⑦索引删除值 del
list1 = ['dcs', '多测师', 88, 'test']
del list1[1] #删除索引为1的值
print(list1) #['dcs', 88, 'test']
⑧sort函数:实现列表的升序排列
list1 = [1,4,2,6,7,8,3]
list2 = [1,2,6,7,3,4,'a','b']
list3 = ['a','A','B','c']
list1.sort()
print(list1) #[1, 2, 3, 4, 6, 7, 8]
list2.sort()
print(list2) #整型和字符串不能一起排序
list3.sort()
print(list3) #['A', 'B', 'a', 'c'] 如果列表中都是字符串通过ASCII进行排序
⑨sorted函数:实现降序排列
list1 = [1,5,3,7,2]
list2 = ['dcs', '多测师', 88, 'test']
print(sorted(list1,reverse=True)) #[7, 5, 3, 2, 1]
print(sorted(list1,reverse=False)) #[1, 2, 3, 5, 7]
print(sorted(list2,reverse=False)) #报错 整型和字符串不能一起排序
|
|