1. 元祖是一种不可变的数据结构,一旦创建无法修改。但是如果元祖里面有可变的数据结构,比如 List。可以修改其中的 List 的值。
1.元祖创建的方式
>> tup = 7,8,9
>> print(type(tup),tup)
<class 'tuple'> (7, 8, 9)
>> tup1 = (7,8,9),(1,2,3)
>> print(type(tup1),tup1)
<class 'tuple'> ((7, 8, 9), (1, 2, 3))
2.使用tuple函数将任意序列转为元祖
>> tup2 = tuple([4,5,6])
>> print(type(tup2),tup2)
<class 'tuple'> (4, 5, 6)
>> tup3 = tuple('asd')
>> print(type(tup3),tup3)
<class 'tuple'> ('a','s','d')
3.元祖不能修改,这里不演示了,
但是可以修改里面可变数据结构的值
a = tuple(['asd',[2,3],False])
print(type(a),a)
('asd', [2, 3], False)
修改[2,3]为[2,3,4]
a[1].append(66)
print(type(a),a)
<class 'tuple'> ('asd', [2, 3, 66], False)
2. 元祖的拆包
1.非嵌套元祖的拆包
>> tup = (6,7,8)
>> a,b,c = tup
>> print(a,b,c)
6 7 8
2.嵌套元祖的拆包
>> tup = 9,10,(6,7,8)
>> a,b,(c,d,e) = tup
>> print(a,b,(c,d,e))
9 10 (6, 7, 8)
>> print(c,d,e)
6 7 8
3.利用拆包完成变量名的交换
>> a,b = 1,2
>> a
1
>> b
2
>> b,a = a,b
>> a
2
>> b
1
4.利用拆包遍历序列
>> seq = [(10,20,30),(40,50,60),(70,80,90)]
>> for a,b,c in seq:
print('a={0},b={1},c={2}'
.format(a,b,c))
a=10,b=20,c=30
a=40,b=50,c=60
a=70,b=80,c=90
5.rest类型的拆包
>> value = 9,8,7,6,5,4
>> a,b,*rest = value
>> print('a={0},b={1},rest={2}'
.format(a,b,rest))
a=9,b=8,rest=[7, 6, 5, 4]
6.count方法
>> a = (2,2,2,1,1,3)
>> print( a.count(2) )
3
欢迎关注 知乎@Overfitting
网友评论