慢一点,不是落后,而是让每一步都踩得更实。时间会证明,稳比快更接近远方。
学习打卡第十二天
一、元组(tuple)的基本概念
组与列表类似,都是用于存储一系列元素的数据结构。但二者有一个关键区别:元组的元素不能修改,这使得元组具有不可变性。
所谓元组的不可变,指的是元组所指向的内存中的内容不可变。当我们尝试修改元组中的元素时,会出现错误;而当我们对元组进行重新赋值时,元组会绑定到新的对象,其内存地址会发生改变。
在语法上,元组使用小括号 ( ) 来定义,而列表使用方括号 [ ]
二、元组的创建
只需在小括号中添加元素,并用逗号隔开即可
1.使用圆括号 () 创建
t1 = (1, 2, 3)
t2 = ("a", "b", "c")
2.单元素元组需加逗号
如果元组只包含一个元素,必须在该元素后加逗号,否则 Python 会将其视为普通表达式
t4 = (1,) # 正确
3.使用 tuple() 构造器创建
可以通过内置函数 tuple() 从其他可迭代对象(如列表、字符串等)创建元组
t5 = tuple([1, 2, 3])
t6 = tuple("hello")
4.创建空元组
t7 = ()
三、元组的访问
元组与字符串类似,下标索引从 0 开始,可以通过下标索引来访问元组中的值,也可以进行截取操作
my_tup = (1, 2, 3, 4, 5, 6, 7 )
# 访问单个元素
print("my_tup[0]: ", my_tup[0]) # 输出:my_tup[0]: 1
# 截取元素
print("my_tup[1:5]: ", my_tup[1:5]) # 输出:my_tup[1:5]: (2, 3, 4, 5)
四、元组的修改与删除
1.修改
这与开始说的元组不可以修改是否矛盾呢,答案是肯定的,元组不可以修改其中的一个元素。但可以两个元组拼接成一个新的元组
tup1 = (1, 2)
tup2 = ('3', 'tgm')
# 以下修改元组元素操作是非法的
# tup1[0] = 100
# 创建一个新的元组
tup3 = tup1 + tup2
print(tup3) # 输出:(1, 2, '3', 'tgm')
2.删除
同理,元组也不可以删除其中的单个元素,但可以用del语句来删除整个元组
tup1 = ('hello', 'python', 1997, 2000)
print(tup1) # 输出:('hello', 'python', 1997, 2000)
del tup1
print("删除后的元组 tup1 : ")
print(tup) # 元组被删除后,输出变量会有异常信息
会出现如下异常信息:
删除后的元组 tup :
Traceback (most recent call last):
File "test.py", line 8, in <module>
print(tup)
NameError: name 'tup' is not defined
五、元组运算符
与字符串一样,元组之间可以使用 +、+= 和 * 号进行运算,通过这些运算可以实现元组的组合和复制,运算后会生成一个新的元组。
| a = (1, 2, 3); b = (4, 5, 6); c = a + b | (1, 2, 3, 4, 5, 6) | 连接,c 是包含 a 和 b 所有元素的新元组 |
| a = (1, 2, 3); b = (4, 5, 6); a += b | (1, 2, 3, 4, 5, 6) | 连接,a 变成包含 a 和 b 所有元素的新元组 |
| (‘Hi!’,) * 4 | (‘Hi!’, ‘Hi!’, ‘Hi!’, ‘Hi!’) | 复制 |
| 3 in (1, 2, 3) | True | 判断元素是否存在 |
| for x in (1, 2, 3): print(x, end=" ") | 1 2 3 | 迭代 |
六、元组的索引与截取
由于元组是一个序列,所以我们可以访问元组中指定位置的元素,也可以截取索引中的一段元素。其实跟列表一样的。
假设有元组 tup = ('QQ', 'Taobao', 'Wiki', 'Weibo','Weixin'),具体操作如下:
tup = ('QQ', 'Taobao', 'Wiki', 'Weibo','Weixin')
print(tup[0]) # 输出 'QQ'
print(tup[-2]) # 输出 'Weibo'
print(tup[1:]) # 输出 ('Taobao', 'Wiki', 'Weibo','Weixin')
print(tup[1:4]) # 输出 ('Taobao', 'Wiki', 'Weibo')
七、元组的内置函数
| len(tuple) | 计算元组元素个数 |
| max(tuple) | 返回元组中元素最大值 |
| min(tuple) | 返回元组中元素最小值 |
| tuple(iterable) | 将可迭代系列转换为元组 |






