Python语言基础
Python语言进阶
Python数据结构

Python 元组

搞懂Python元组的基本操作
元组与列表类似,不同之处有2点:
元组的元素不能修改,包括修改元素值,删除和插入元素; 元组使用小括号,列表使用方括号。
元组创建很简单,只需要在括号()中用逗号隔开元素即可,格式为:(item1, item2, ... , itemn)
存储的元素包括整数、实数、字符串、列表、元组等数据类型,且同一个元组中数据类型可以不同,例如:(1, '2', [2,'a'], ("abc",3.0))

创建元组

元组可以使用下标索引来访问元组中的值,如下实例:
tuple1 = () # 创建一个空元组
print("空元组数据类型为%s,元组数据:%s。" % (type(tuple1),tuple1))
tuple1 = 10
print("不加逗号,数据类型为%s,元组数据:%s。" % (type(tuple1),tuple1))
animal = "cat", "dog"
print("不加括号,数据类型为%s,元组数据:%s。" % (type(animal),animal))
tuple1 = (10,)
print("加上逗号,数据类型为%s,元组数据:%s。" % (type(tuple1),tuple1))
#将列表转换成元组
list = ['cat', 'dog', 'pig', 'lion']
tuple1 = tuple(list)
print("使用tuple和list创建元组数据:{value}。".format(value=tuple1))
# 将区间转换成元组
range = range(1, 6)
tuple1 = tuple(range)
print("使用tuple和range创建元组数据:{value}。".format(value=tuple1))
执行结果:
空元组数据类型为<type 'tuple'>,元组数据:()。
不加逗号,数据类型为<type 'int'>,元组数据:10。
不加括号,数据类型为<type 'tuple'>,元组数据:('cat', 'dog')。
加上逗号,数据类型为<type 'tuple'>,元组数据:(10,)。
使用tuple和list创建元组数据:('cat', 'dog', 'pig', 'lion')。
使用tuple和range创建元组数据:(1, 2, 3, 4, 5)。

访问元组

和列表一样,我们可以使用2种方式访问元组。
使用索引(Index)访问元组中的某个元素,格式为:tuplename[i] 使用切片访问元组元素,格式为:tuplename[start : end : step]
具体例子如下:
animal = ('dog', 'cat', 'lion', 'pig')
print("animal[0]: ", animal[0])
print("animal[-2]: ", animal[-2])
print("animal[1:3]: ", animal[1:3])
print("animal[-3: -1]",animal[-3: -1])
执行结果:
('animal [0]: ', 'dog')
('animal [-2]: ', 'lion')
('animal [1:3]: ', ('cat', 'lion'))
('animal [-3: -1]', ('cat', 'lion'))

修改元组

元组中的元素不能被修改,这里说的修改是创建一个新的元组去替代旧的元组。具体如下:
tuple1 = (1, 2, 3, 4)
print("原始元组的值{value}".format(value=tuple1))
tuple1 = (5,6,7,8)
print("对元组进行重新赋值{value}".format(value=tuple1))
tuple2 = (1,2,3,4)
print("输出两个累加元组的值{value}".format(value=(tuple1+tuple2)))
print("tuple1元组的值{value}".format(value=tuple1))
print("tuple2元组的值{value}".format(value=tuple2))
执行结果:
原始元组的值(1, 2, 3, 4)
对元组进行重新赋值(5, 6, 7, 8)
输出两个累加元组的值(5, 6, 7, 8, 1, 2, 3, 4)
tuple1元组的值(5, 6, 7, 8)
tuple2元组的值(1, 2, 3, 4)

删除元组

当创建的元组不再使用时,可以通过 del 关键字将其删除,例如:
animal = ('dog', 'cat', 'lion', 'pig')
print(animal)
del animal
print("删除后的元组 tup :{vlaue} ".format(vaule=animal))
执行结果:
('dog', 'cat', 'lion', 'pig')
Traceback (most recent call last):
File "/Users/yf/workspace/firstpython/class/course.py", line 100, in <module>
print ("删除后的元组 tup :{vlaue} ".format(vaule=animal))
NameError: name 'animal' is not defined
输出变量会有异常信息,说明元组animal已被删除。

元组运算符

元组运算符与字符串一样,元组之间可以使用 + 号和 * 号进行运算。这就意味着他们可以组合和复制,运算后会生成一个新的元组。
Python表达式结果 描述
len((1, 2, 3)) 3 计算元素个数
(1, 2, 3) + (4, 5, 6) (1, 2, 3, 4, 5, 6) 连接
('Hi!',) * 4 ('Hi!', 'Hi!', 'Hi!', 'Hi!') 复制
3 in (1, 2, 3) True 元素是否存在
for x in (1, 2, 3): print (x,) 1 2 3 迭代

元组索引和截取

因为元组也是一个序列,所以我们可以访问元组中的指定位置的元素,也可以截取索引中的一段元素,如下所示:
元组:tuple = ('dog', 'cat', 'lion')
Python 表达式结果描述
tuple[2]'lion' 读取第三个元素
tuple[-2] 'cat' 反向读取,读取倒数第二个元素
tuple[1:] 'cat', 'lion' 截取元素,从第二个开始后的所有元素。

元组内置函数

Python元组包含了以下内置函数
方法及描述实例结果
len(tuple)
计算元组元素个数。
tuple = ('dog', 'cat', 'lion')
print(len(tuple))
3
max(tuple)
返回元组中元素最大值。
tuple = (1, 2, 7)
print(max(tuple))
7
min(tuple)
返回元组中元素最小值。
tuple = (1, 2, 7)
print(min(tuple))
1
昵称: 邮箱:
bestboy365 2020-09-21

元组比列表的优势

由于元组与列表非常相似,因此它们都在类似的情况下使用。但是,在列表上实现元组具有某些优点。以下列出了一些主要优点:


1、我们通常将元组用于异构(不同)数据类型,将列表用于同类(相似)数据类型。

2、由于元组是不可变的,因此遍历元组比使用list更快。因此,性能略有提高。

3、包含不可变元素的元组可以用作字典的键。对于列表,这是不可能的。

4、如果您的数据没有变化,将其实现为元组将确保其保持写保护。

Copyright © 2022 立地货 All Rights Reserved.
备案号:京ICP备14037608号-4