&【07】Python 数据类型之元组
本文参考:
Python 中的数据结构是通过某种方式组织在一起的数据元素的集合,这些数据元素可以是数字、字符、甚至可以是其他数据结构 在 Python 中,最基本的数据结构是序列(列表和元组),序列中的每个元素都有一个序号(元素的具体位置),这个序号叫索引,索引下标从 0 开始,以此类推……
- Python 的元组与列表类似,不同之处在于元组的元素不能修改。
- 元组使用小括号(),列表使用方括号[]。
1. 元组基本操作
1.1 创建元组
元组创建很简单,只需要在括号中添加元素(不需要括号也可以),并使用逗号隔开即可。
tup1 = ('baidu', 'google', 12, 34)
tup2 = (1, 2, 3, 4, 5)
tup3 = "a", "b", "c", "d"
# 创建空元组
tup4 = ()
# 查看tup3和tup4的类型
print(type(tup3)) # 输出 <class 'tuple'>
print(type(tup4)) # 输出 <class 'tuple'>
==注意:== 元组中只包含一个元素时,需要在元素后面添加逗号,否则括号会被当作运算符使用,如下:
TupNum = (34)
# 不加逗号是整型
print(type(TupNum)) # 输出 <class 'int'>
TupNum = (34,)
# 加上逗号变元组
print(type(TupNum)) # 输出 <class 'tuple'>
元组与字符串类似,下标索引从 0 开始,可以对元组进行截取,组合等操作。
1.2 访问元组
元组的访问和序列访问元素一样,都是通过下标索引进行访问操作
tup1 = ('baidu', 'google', 1, 2)
tup2 = (1, 2, 3, 4, 5, 6, 7)
print(tup1[0:2]) # 输出('baidu', 'google')
print(tup2[1:4]) # 输出 (2, 3, 4)
1.3 修改元组
元组中的值一旦定义就不能修改,但是我们可以通过元组与元组之间的连接关系来对元组进行修改,例如:
tup1 = ('baidu', 'google', 1, 2)
tup2 = (1, 2, 3, 4, 5, 6, 7)
print(tup1 + tup2) # 输出 ('baidu', 'google', 1, 2, 1, 2, 3, 4, 5, 6, 7)
==注意:== 以下修改元组属于非法操作,因为元组不支持通过索引列来修改,只能对元组进行复制和连接操作
==tup1[0] = 100== (不能进行此操作)
1.4 删除元组
由于元组的不可修改性,所以元组中的元素值是不允许删除的,但我们可以使用 del 语句来删除整个元组,如下实例:
tup = ('baidu', 'google', 1, 2)
print(tup) # 输出 ('baidu', 'google', 1, 2)
del tup
print("删除后的元组 tup : ")
print(tup)
# 报错信息如下,证明整个元组已经被删除
Traceback (most recent call last):
File "main1.py", line 7, in <module>
print(tup)
NameError: name 'tup' is not defined
2 元组运算符
与字符串一样,元组之间可以使用 + 号和 * 号进行运算。这就意味着他们可以组合和复制,运算后会生成一个新的元组。总而言之对整个元组进行一些运算后就会生成一个新的元组。
2.1 元组求长度
元组求长度使用运算函数 len ,如下
tup1 = ('baidu', 'google', 1, 2)
# 求元组tup1的长度
print(len(tup1)) # 输出 3
2.2 连接元组
两个甚至对个元组的连接使用 + 连接符,例如:
tup1 = (1, 2, 3)
tup2 = (4, 5, 6)
tup3 = (7, 8, 9)
print(tup1 + tup2 + tup3) # 输出 (1, 2, 3, 4, 5, 6, 7, 8, 9)
2.3 复制元组
tup1 = ('abc')
# 元组复制需要加上分隔符后面复制的内容就按照分隔符分隔开
print((tup1,) * 3) # 输出 ('abc', 'abc', 'abc')
2.4 判断元素
判断元组中元素是否存在使用关键字 in 进行判断,判断结果返回布尔值
tup1 = 'abc'
print('a' in tup1) # 输出True
print('d' in tup1) # 输出False
2.5 元组中指定位置元素访问
和序列一样,元组中的元素同样可以使用索引号访问指定位置的元素,例如:
content = ('hello', 'world', '!')
print(content) # 输出 ('hello', 'world', '!')
print(content[1:]) # 输出('world', '!')
print(content[:2]) # 输出('hello', 'world')
print(content[-1]) # 输出!
print(content[-2]) # 输出world
3 元组内置函数
和列表一样,元组同样也拥有一些内置函数,这些函数用于判元组中的元素大小以及将元组做相应的转换
tp = (1, 2, 3, 4, 5, 6, 7, 8)
# 计算元组元素个数。
print(len(tp)) # 输出 8
# 返回元组中元素最大值。
print(max(tp)) # 输出 8
# 返回元组中元素最小值。
print(min(tp)) # 输出 1
# 将列表转换为元组。
seq = [5, 4, 3, 2, 1]
print(seq) # 输出 [5, 4, 3, 2, 1]
print(type(seq)) # 输出<class 'list'>
tpseq = tuple(seq)
print(tpseq) # 输出 (5, 4, 3, 2, 1)
print(type(tpseq)) # 输出 <class 'tuple'>