一、元组
1.1 元组的简介
- 元组的表现形式 tuple
- 元组是一个不可变的序列
- 在开发过程中,如果我们不希望序列发生变化就使用元组,其余情况一律使用列表
1.2 创建元组
创建元组共有三种方式
第一种:()
tup = () #创建一个空的元组
#元组中的元素可以是任意的数字类型包括整型、浮点型、列表、元组、字符串等
tup1 = (1,1.2,"haha",[1,2],{"name":"hw","age":18},(1,2))
第二种:tuple()
tup = tuple() #创建一个空的元组
tup1 = tuple("hello") #创建一个非空的元组(将字符串强制类型转换为元组)
print(tup1) #返回值为('h', 'e', 'l', 'l', 'o')
第三种:加“,”方式
tup = 10, #若创建的是一个非空元组,则至少需要有一个“,”
tup1 = 10,"h",20,1.2 #创建一个非空元组
print(tup,type(tup))
1.3 访问元组中的元素
访问字典中元素的方法和访问列表中元素的方法一致
语法为:
元组名[索引值]
索引值从0开始,最后一个元组元素的索引值为len(元组名)-1
tup = (1,2,'s','h','d')
print(tup[3]) #返回索引值为3的元素,返回值为“h”
注:
元组是一个不可变的序列,因此不可以对元组进行增、删、改、
查的操作
1.4 元组的解包
解包:将元组中的每一个元素赋值给每一个变量
tup1 = 10,20,30,40
a,b,c,d = 10,20,30,40 #元组解包
a,b = 10,20,30,40 #元组解包
print("a = ",a,"b = ",b) #报错 ValueError: too many values to unpack
解决方案:
a,b,*c = 10,20,30,40
#除开始的两个元素赋值给a,b之外,其余元素均以列表的形式赋值给c
print("a = ",a,"b = ",b,"c = ",c) #返回结果 a = 10 b = 20 c= [30, 40]
a,*b,c = 10,20,30,40
#除开始和两个元素赋值给a,c之外,其余元素均以列表的形式赋值给b
print("a = ",a,"b = ",b,"c = ",c) #返回结果 a = 10 b = [20,30] c= 40
*a,b,c = 10,20,30,40
#除最后两个元素赋值给a,c之外,其余元素均以列表的形式赋值给a
print("a = ",a,"b = ",b,"c = ",c) #返回结果 a = [10,20] b = 30 c= 40
- 元组在解包过程中,变量的数量应该与元组中元素的个数保持一致
- 当元组元素个数与变量不一致时,可以在变量前添加*,使多余的元组元素以列表的形式赋值给该变量(*变量名)
- 不能由多个*