列表是可以被修改,如果想要在传输过程中数据不被修改,就使用元组。元组一经定义就,就不得修改。
元组(tuple),元组可以有多个数据类型
元组用小括号()来表示其元素,定义。
定义元组
语法结构:
普通定义:
变量名=(int型,Boolean型,String型)
变量名=tuple()
变量名=()
注意:如果元组只有一个元素则:必须加一个逗号,否则不是元组。
即:变量名=(1,)
嵌套元组,和list一样
变量名=((,),(,))
从下标索引,获取元组数值
变量名=元组名[][]
代码示例:
#定义元组
t1=(1,True,"hello")
t2=()
t3=tuple()
print(f"t1的类型是:{type(t1)}",t1)
print(f"t2的类型是:{type(t2)}",t2)
print(f"t3的类型是:{type(t3)}",t3)
#定义单个元素的元组
t4=("hello")
print(f"t4的类型是:{type(t4)}",t4)
t4=("hello",)
print(f"t4的类型是:{type(t4)}",t4)
#嵌套元组
t5=((1,2,3),(4,5,6))
print(f"t5的类型是{type(t5)}内容是{t5}")
#下标索引取出内容
num=t5[1][2]
print(f"从嵌套元组中取到的数据:{num}")
输出:
t1的类型是:<class 'tuple'> (1, True, 'hello')
t2的类型是:<class 'tuple'> ()
t3的类型是:<class 'tuple'> ()
t4的类型是:<class 'str'> hello
t4的类型是:<class 'tuple'> ('hello',)
t5的类型是<class 'tuple'>内容是((1, 2, 3), (4, 5, 6))
从嵌套元组中取到的数据:6
元组的相关方法:
1.index()方法
语法结构:
变量名=元组名.index(需要查找的元素)
代码示例:
t6=("123","456","789")
index=t6.index("789")
print(f"在t6查找789,的下标为:{index}")
输出: 在t6查找789,的下标为:2
2.cout()方法
语法结构:
变量名=元组名.count(需要查找的元素)
代码示例:
t7=("123","123","789")
num=t7.count("123")
print(f"在元组t7中统计123的数量为:{num}")
输出: 在元组t7中统计123的数量为:2
3.len()方法
语法结构:
变量名=len(需要计算的元组名)
代码示例:
t8=("123","456","789","yuan","shen")
num1=len(t8)
print(f"元组t8中元素的个数为:{num1}")
输出:元组t8中元素的个数为:5
元组的遍历:
while循环:
结构体在分支结构学习过了
所以直接上代码:
index=0
while index<len(t8):
print(f"t8中的元素有:{t8[index]}")
index+=1
输出:
t8中的元素有:123
t8中的元素有:456
t8中的元素有:789
t8中的元素有:yuan
t8中的元素有:shen
for循环:
代码:
for element in t8:
print(f"2t8中的元素有:{element}")
输出:
2t8中的元素有:123
2t8中的元素有:456
2t8中的元素有:789
2t8中的元素有:yuan
2t8中的元素有:shen
尝试修改元组的元素,和修改元组的特例:
尝试修改元组:
代码:
t8[0]="itheima"
输出:TypeError: 'tuple' object does not support item assignment
特例:元组内嵌套一个list,是可以修改list中的元素
代码:
t9=(1,2,["123","456","789"])
print(f"t9的内容是:{t9}")
t9[2][0]="111"
print(f"t9的内容是:{t9}")
输出:
t9的内容是:(1, 2, ['123', '456', '789'])
t9的内容是:(1, 2, ['111', '456', '789'])
不积跬步无以至千里,不积小流无以成江海。