Tuple
1.创建元组
tuple和list非常类似,但是tuple一旦初始化就不能修改。
创建元组可以用小括号 (),也可以什么都不用,为了可读性,建议还是用 ()。
t1 = (1,True,'python',2.58,3)
t2 = (1)
t3 = (1,)
t4 = ()
t5 = 1,True,'python',2.58,3
t6 = (1,2,3),(4,5,6)
print(t1,t2,t3,t4,)
print(t5)
print(t6)
(1, True, 'python', 2.58, 3) 1 (1,) ()
(1, True, 'python', 2.58, 3)
((1, 2, 3), (4, 5, 6))
注意:
(1)当你定义一个tuple时,在定义的时候,tuple的元素就必须被确定下来。
(2)元组中只包含一个元素时,需要在元素后面添加逗号,否则括号会被当作运算符使用。
(3)如果要定义一个空的tuple,可以写成()
2.元组的索引和切片
和列表类似,元组中也可以用整数来对它进行索引 (indexing) 和切片 (slicing)
t = (1,2,3,4,5,6)
x = t[1]
y = t[2:4]
z = t[:]
print(x)
print(y)
print(z)
2
(3, 4)
(1, 2, 3, 4, 5, 6)
3.“改变”元组
(1)更新元组
numbers = (2,4,8,10)
numbers = numbers[:2]+(6,)+numbers[2:]+numbers[:]
num = numbers*2
print(numbers)
print(num)
(2, 4, 6, 8, 10, 2, 4, 8, 10)
(2, 4, 6, 8, 10, 2, 4, 8, 10, 2, 4, 6, 8, 10, 2, 4, 8, 10)
(2)一个“可变的”tuple:
month = ('J','F','M',['B','M','J'])
month[3][0]='A'
print(month)
('J', 'F', 'M', ['A', 'M', 'J'])
实质上是改变了list中的元素
4.元组相关的操作符
(1)count()和index()
count(X) 是记录在元组中元素X出现几次
index(Y) 是找到该元素在元组中的索引
tuple = ('asx','s',23,'python','ss','s')
print(tuple.count('s'))
print(tuple.index('s'))
2
1
(2)解压元组
tp = (2,5,8,('tom','jack'),[1,'s'])
(a,b,c,(d,e),[f,g]) = tp
(x,*z,y) = tp
(m,*_,n) = tp
print(a,b,c,d,e,f,g)
print(x,y)
print(z)
print(m,n)
2 5 8 tom jack 1 s
2 [1, 's']
[5, 8, ('tom', 'jack')]
2 [1, 's']
解压一维元组:有几个元素左边括号定义几个变量
解压二维元组:按照元组里的元组结构来定义变量
如果你只想要元组其中几个元素,那么可以用通配符*代表一个或多个元素。
如果你根本不在乎 z变量,那么就用通配符**加上下划线_