一、元祖
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 元祖

元祖的其他操作,切片与列表是一致的。

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐