数据容器-元组
元组一旦定义完成,不可修改 可修改内部嵌套的list中的元素 使用()定义,逗号隔开各个数据,数据可以是不同的数据类型
t1=(1,"Hello",True)
t2=()
t3=tuple()
print(f"t1的类型是:{type(t1)},内容是:{t1}")
print(f"t2的类型是:{type(t2)},内容是:{t2}")
print(f"t3的类型是:{type(t3)},内容是:{t3}") #均为tuple类型,t2t3为空
#定义的元组中只有一个数据
t4=("hello")
print(f"t3的类型是:{type(t4)},内容是:{t4}") #t4的类型是:<class 'str'>,内容是:hello
t5=("hello",)
print(f"t3的类型是:{type(t5)},内容是:{t5}") #t5的类型是:<class 'tuple'>,内容是:('hello',)
#元组的嵌套
t6=( (1,2,3),(4,5,6) )
print(f"t6的类型是:{type(t6)},内容是:{t6}")
#下标索引去取出内容
num=t6[1][2]
print(f"从嵌套元组中取出的数据是:{num}")
元组的相关操作
index()查找数据返回下标
count()统计某个数据在当前元组出现的次数
len(元组)统计元组内的元素个数
#元组的操作:index查找方法
t1=("ddd","eee","000")
index=t1.index("ddd")
print(f"在元组t1中查找ddd,的下标是:{index}")
#元组的操作:count统计方法
t2=("ddd","wwww","fff","uedheud","ddd")
num=t2.count("ddd")
print(f"在元组t2中统计ddd的数量有:{num}个")
#元组的操作:len函数统计元组元素数量
t3=("ddd","wwww","fff","uedheud","ddd")
num=len(t3)
print(f"在元组t3中的元素有:{num}个")
#元组的遍历:while
index=0
while index<len(t3):
print(f"元组的元素有:{t3[index]}")
index+=1
#元组的遍历:for
for element in t3:
print(f"元组的元素有:{element}")
#元组内容不能修改,元组中嵌套的list中的内容可以修改
t4=(1,2,["eeded","grfrfr"])
print(f"t4的内容是:{t4}")
t4[2][0]="cast"
t4[2][1]="new"
print(f"t4的内容是:{t4}")
#案例
t1=("周杰伦",11,["football","music"])
#查询其年龄所在下标位置
index=t1.index(11)
print(f"年龄所在下标位置为:{index}")
#查询学生的姓名
print(t1[0])
#删除爱好中的football
t1[2][0]=""
print(t1)
#增加爱好:coding到list中
t1[2].append("coding")
print(t1)
数据容器-字符串-不可修改
只可以存储字符串
和列表、元组一样,可通过下标进行访问 从前向后(下标从0开始)\从后向前(下标从-1开始)
字符串常用操作:
my_str="hhyh and whww"
#通过下标索引取值
value=my_str[2]
value2=my_str[-11]
print(f"从字符串{my_str}取下标为2的值为{value},下标为-16的值为{value2}")
#index方法
value=my_str.index("and")
print(f"字符串中and的下标为{value}")
#字符串的替换replace(字符串1,字符串2),将字符串内1替换为2,但不是修改字符串本身,而是得到了一个新的字符串
new_str=my_str.replace("hhyh","sxy")
print(f"字符串替换后的结果为{new_str}")
#字符串的分割split :按照指定的分隔符字符串,将字符串划分为多个字符串,并存入列表对象中(字符串本身不变,而是得到了一个列表对象)
my_str="wwwww danosaur"
my_str_list=my_str.split(" ")
print(f"将字符串{my_str}进行切分后的结果:{my_str_list},类型是:{type(my_str_list)}")
#将字符串wwwww danosaur进行切分后的结果:['wwwww', 'danosaur'],类型是:<class 'list'>
#字符串的规整功能
my_str=" xx love you "
new_my_str=my_str.strip()#不传入参数,去除首尾空格
print(f"字符串{my_str}被strip()后,结果为{new_my_str}")
my_str="12hhh and hhh21"
new_my_str2=my_str.strip("12")#传入参数,去除所传参数 strip(“12”)意思是去除字符1和字符2
print(f"字符串{my_str}被strip(12)后,结果为{new_my_str2}")
#字符串 xx love you 被strip()后,结果为xx love you
#字符串12hhh and hhh21被strip(12)后,结果为hhh and hhh
#统计字符串中某个字符串出现的次数
my_str="I love you I"
count=my_str.count("I")
print(f"字符串中I出现的次数为{count}")
#统计字符串的长度 len()
my_str="I love you I"
num=len(my_str)
print(f"字符串长度为{num}")
#案例
my_str="wo xiang xue tiao wu wo"
#统计字符串中有多少个“wo"字符
num=my_str.count("wo")
print(f"字符串中wo的个数为:{num}")
#将字符串中的空格全部替换为字符:“|”
new_my_str=my_str.replace(" ","|")
print(f"字符串完成替换后的结果为{new_my_str}")
#并按照“|"进行字符串分割,得到列表
my_str_list=new_my_str.split("|")
print(f"字符串按照|分割后的结果为{my_str_list}")
#字符串中wo的个数为:2
#字符串完成替换后的结果为wo|xiang|xue|tiao|wu|wo
#字符串按照|分割后的结果为['wo', 'xiang', 'xue', 'tiao', 'wu', 'wo']
序列
内容连续、有序,可使用下标索引的一类数据容器 列表、元组、字符串均可视为序列
序列的切片操作:从一个序列中取出一个子序列,此操作不影响序列本身而是得到一个新序列
语法:序列[起始下标:结束下标:步长] 从指定位置取出到指定位置结束,得到一个新序列
起始下标表示从何处开始,可以留空,留空视为重头开始
结束下标(不含)表示何处结束,可以留空,留空视作截取到结尾
#对list进行切片,从1开始,4结束,步长1
my_list=[0,1,2,3,4,5,6]
result1=my_list[1:4] #步长默认是1,可省略不写
print(f"结果是{result1}") #结果为123
#对tuple进行切片,从头开始到尾结束,步长为1
my_tuple=(0,1,2,3,4,5,6)
result2=my_tuple[:]
print(f"结果是:{result2}")
#对str进行切片,从头到尾,步长为2
my_str="01234567"
result3=my_str[::2]
print(f"结果是:{result3}")
#对str进行切片,从头到尾,步长-1
my_str="01234567"
result4=my_str[::-1] #等同于将序列反转了
print(f"结果是:{result4}")
#对列表进行切片,从3开始,到1结束,步长-1
my_list=[0,1,2,3,4,5,6]
result5=my_list[3:1:-1]
print(f"结果是{result5}") #输出为32
#对元组进行切片,从头至尾,步长-2
my_tupple=(0,1,2,3,4,5,6)
result6=my_tupple[::-2]
print(f"结果是{result6}") #输出为6,4,2,0
#案例:序列的切片 对字符串“胖宝宝,米基哈,胖宝宝” 得到哈基米
my_str="胖宝宝,米基哈h,胖宝宝"
result=my_str[6:3:-1]
print(f"方式1结果:{result}")
#切片取出,然后倒序
result2=my_str[4:7][::-1]
print(f"方式2结果:{result2}")
#倒叙字符串,切片取出
result3=my_str[::-1][5:8]
print(f"方式3结果:{result3}")
#split分隔“,”replace替换h为空,倒序字符串
result4=my_str.split(",")[1].replace("h","")[::-1]
print(f"方式4结果:{result4}")