元组是一个不可变序列,它的操作方式基本上和列表一致,所以在操作元组时,把元组当成一个不可变的列表就行,一般数据不改变时使用元组。
# 创建元组 my_tuple = () # 创建了一个空元组 print(type(my_tuple))
元组是不可变对象,不能为元组中的元素重新赋值
a = (1, 2, 3, 4, 5, 6) a[3] = 10 # TypeError: 'tuple' object does not support item assignment
当元组不是空元组时,括号可以省略,如果元组不是空元组,它必须至少有一个逗号
a = 1, 2, 3, 4, 5 b = 1, print(type(a), type(b))
元组的解包(解构):
解包就是将元组中每一个元素都赋值给一个变量
ass = 1, 2, 3, 4 a, b, c, d = ass print('a = %d, b = %d, c = %d, d = %d'%(a, b, c, d))
a = 100 b = 25 # 交互a b 的值,可以利用元组的解包 a, b = b, a print('a = %f, b = %d'%(a, b))
在对一个元组进行解包时,变量的数量必须和元组中的元素的数量一致
ass = 1, 2, 3, 4, 5 a, b, *c = ass print('a = %s, b = %s, c = %s'%(a, b, c)) *a, b, c = ass print('a = %s, b = %s, c = %s'%(a, b, c)) a, *b, c = ass print('a = %s, b = %s, c = %s'%(a, b, c)) # 不能同时出现两个或以上的*变量 # *a, *b, c = ass # SyntaxError: two starred expressions in assignment # print('a = %s, b = %s, c = %s'%(a, b, c))