DataWhale-Python基础-5.元组
元组(tuple)的形式:
(元素1,元素2,…,元素N)
- 它是由小括号括起来的
- 元素之间用,来间隔
1.创建与访问一个元组
首先我们来看一下元组和列表的异同:
- 元组用小括号,数组用中括号
- tuple创建之后不能被修改,list可以
- 都可以用整数来进行索引和切片操作
t1 = (1, 10.31, 'python')
t2 = 1, 10.31, 'python'
print(t1, type(t1))
# (1, 10.31, 'python') <class 'tuple'>
print(t2, type(t2))
# (1, 10.31, 'python') <class 'tuple'>
#这里我们可以看出构造元组可以不需要小括号,但为了可读性,一般都会加上。
#元组的索引及切片
tuple1 = (1, 2, 3, 4, 5, 6, 7, 8)
print(tuple1[1]) # 2
print(tuple1[5:]) # (6, 7, 8)
print(tuple1[:5]) # (1, 2, 3, 4, 5)
tuple2 = tuple1[:]
print(tuple2) # (1, 2, 3, 4, 5, 6, 7, 8)
#元组中只包含一个元素的时候,需要在后面添加逗号,否则括号可能被当作运算符使用
x = (1)
type(x)
# int
x = (1,)
type(x)
# tuple
2.更新和删除一个元组
- 元组有不可更改 (immutable) 的性质,因此不能直接给元组的元素赋值,但是只要元组中的元素可更改 (mutable),那么我们可以直接更改其元素,注意这跟赋值其元素不同。
#例子
week = ('Monday', 'Tuesday', 'Thursday', 'Friday')
week = week[:2] + ('Wednesday',) + week[2:]
print(week) # ('Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday')
3.元组相关的操作符
- 等号:==
- 连接:+
- 重复:*
- 成员关系:in, not in
4.元组的内置方法
由于元组的大小和内容都不可更改,因此只有count和index两种方法。
t = (1, 10.31, 'python')
print(t.count('python')) # 1
print(t.index(10.31)) # 1
- count用来对元组中该元素出现的次数
- index用来找到该元素在元组中的索引
5.解压元组
#解压一维元组
t = (1,2,3)
a,b,c = t
print(a,b,c)
# 1 2 3
#解压二元数组
t = (1, 2, (3, 4))
a, b, (c, d) = t
print(a,b,c,d)
# 1 2 3 4
#使用通配符*来表示多个元素
t = (1,2,3,4,5)
a, b, *rest, c = t
print(a,b,c,rest)
# 1 2 5 [3, 4]
#用*_来表示其他
t = 1, 2, 3, 4, 5
a, b, *_ = t
print(a, b)
# 1 2
练习题
1.写出下面代码的执行结果和最终结果的类型
(1, 2)*2 #(1,2,1,2)
(1, )*2 #(1,1)
(1)*2 # 2
2.拆包过程是什么?
拆包过程就是对于函数中的多个返回数据, 去掉元组,列表或者字典 直接获取里面数据的过程.
a,b = 1,2
属于拆包
3.可迭代对象拆包时,怎么赋值给占位符?
单个变量可以直接用=赋值给一个变量
也可以用*来表示多个变量