一、元祖
1、简介
Python的元组与列表类似,不同之处在于元组的元素不能修改。
所以在操作元组时,就把元组当成是一个不可变的列表就ok了。
2、元祖特点
1、元祖是一个不可变的序列
2、当元祖不是空元祖时,括号可以省略。
3、当元祖只有一个元素时,需加逗号
4、元素可重复
3、元祖使用场景
当我们希望数据不改变时,就使用元组,其余情况都使用列表
二、元祖的创建
使用()来创建元组
my_tuple = (1, 2, 3, 4, 5)
# my_tuple[2] = 10 # TypeError: 'tuple' object does not support item assignment
print(my_tuple) # (1, 2, 3, 4, 5)
my_tuple = 40,
print(my_tuple, type(my_tuple)) #(40,) <class 'tuple'>
三、元素的解包
解包指就是将元组当中每一个元素都赋值给一个变量。
my_tuple = 10, 20, 30, 50
a, b, c, d = my_tuple # 元祖解包
print('a = ', a)
print('b = ', b)
print('c = ', c)
print('d = ', d)
控制台打印:
a = 10
b = 20
c = 30
d = 50
# 交换连个元素的值
a = 100
b = 200
print("交换之前:", 'a = ', a, 'b =', b)
a, b = b, a
print("交换之后:", 'a = ', a, 'b =', b)
控制台打印结果:
交换之前: a = 100 b = 200
交换之后: a = 200 b = 100
my_tuple = 10, 20, 30, 50
# 在对一个元组进行解包时,变量的数量必须和元组中的元素的数量一致
# 也可以在变量前边添加一个*,这样变量将会获取元组中所有剩余的元素
a, b, *c = my_tuple
print('a =',a)
print('b =',b)
print('c = ', c)
控制台的打印:
a = 10
b = 20
c = [30, 50]
a , *b , c = my_tuple
a = 10
b = [20,30]
c = 50
# 不能同时出现两个或以上的*变量
*a , *b , c = my_tuple SyntaxError: two starred expressions in assignment
四、元祖去重:set()
test_tuple = (1, 2, 3, 4, 3, 5, 1)
print(set(test_tuple)) # {1, 2, 3, 4, 5}
五、元祖拼接
tup1 = (76, 28)
tup2 = ('hao', 'yan')
tup3 = tup1 + tup2
print(tup3) # (76, 28, 'hao', 'yan')
六、删除元祖
del 元祖
元祖的其他操作,切片与列表是一致的。