本文概述
Python Tuple用于存储不可变的python对象的序列。元组与列表类似, 因为可以更改存储在列表中的项目的值, 而元组是不可变的, 并且不能更改存储在元组中的项目的值。
元组可以写成用小括号括起来的逗号分隔值的集合。元组可以定义如下。
T1 = (101, "Ayush", 22)
T2 = ("Apple", "Banana", "Orange")
例子
tuple1 = (10, 20, 30, 40, 50, 60)
print(tuple1)
count = 0
for i in tuple1:
print("tuple1[%d] = %d"%(count, i));
输出
(10, 20, 30, 40, 50, 60)
tuple1[0] = 10
tuple1[0] = 20
tuple1[0] = 30
tuple1[0] = 40
tuple1[0] = 50
tuple1[0] = 60
例子2
tuple1 = tuple(input("Enter the tuple elements ..."))
print(tuple1)
count = 0
for i in tuple1:
print("tuple1[%d] = %s"%(count, i));
输出
Enter the tuple elements ...12345
('1', '2', '3', '4', '5')
tuple1[0] = 1
tuple1[0] = 2
tuple1[0] = 3
tuple1[0] = 4
tuple1[0] = 5
但是, 如果我们尝试重新分配元组的项目, 则由于元组对象不支持项目分配, 我们将收到错误消息。
空元组可以编写如下。
T3 = ()
具有单个值的元组必须包含一个逗号, 如下所示。
T4 = (90, )
元组与列表的索引方式相同。可以使用它们的特定索引值访问元组中的项目。
在本教程的这一部分中, 我们将看到元组的所有这些方面。
元组索引和拆分
元组中的索引和切片类似于列表。元组中的索引从0开始, 到length(tuple)-1。
可以使用slice运算符访问元组中的项目。 Python还允许我们使用冒号运算符访问元组中的多个项目。
考虑下图以详细了解索引和切片。
与列表不同, 由于元组是不可变的, 因此不能使用del关键字删除元组项目。要删除整个元组, 我们可以在元组名称中使用del关键字。
考虑以下示例。
tuple1 = (1, 2, 3, 4, 5, 6)
print(tuple1)
del tuple1[0]
print(tuple1)
del tuple1
print(tuple1)
输出
(1, 2, 3, 4, 5, 6)
Traceback (most recent call last):
File "tuple.py", line 4, in <module>
print(tuple1)
NameError: name 'tuple1' is not defined
像列表一样, 元组元素可以在两个方向上访问。可以使用索引-1访问元组的最右边元素(最后一个)。使用负索引从左到右遍历元素。
考虑以下示例。
tuple1 = (1, 2, 3, 4, 5)
print(tuple1[-1])
print(tuple1[-4])
输出
5
2
元组基本操作
串联(+), 重复(*), 成员资格(in)等运算符的工作方式与使用列表相同。请考虑下表以获取更多详细信息。
假设声明了元组t =(1、2、3、4、5)和元组t1 =(6、7、8、9)。
Operator | Description | Example |
---|---|---|
Repetition | 重复运算符使元组元素可以重复多次。 | T1 * 2 =(1、2、3、4、5、1、2、3、4、5) |
Concatenation | 它连接运算符两侧提到的元组。 | T1 + T2 =(1、2、3、4、5、6、7、8、9) |
Membership | 如果元组中存在特定项, 则返回true, 否则返回false。 | 打印(T1中的2)打印True。 |
Iteration | for循环用于遍历元组元素。 | 对于T1中的我: print(i)输出1 2 3 4 5 |
Length | 它用于获取元组的长度。 | 仅(T1)= 5 |
Python Tuple内置函数
SN | Function | Description |
---|---|---|
1 | cmp(元组1, 元组2) | 它比较两个元组, 如果tuple1大于tuple2, 则返回true, 否则返回false。 |
2 | len(tuple) | 它计算元组的长度。 |
3 | max(tuple) | 它返回元组的最大元素。 |
4 | min(tuple) | 它返回元组的最小元素。 |
5 | tuple(seq) | 它将指定的序列转换为元组。 |
在哪里使用元组
在以下情况下, 使用元组代替列表。
1.使用元组而不是列表可以使我们清楚地知道元组数据是恒定的, 不能更改。
2.元组可以模拟没有键的字典。考虑以下可用作字典的嵌套结构。
[(101, "John", 22), (102, "Mike", 28), (103, "Dustin", 30)]
3.由于元组具有不变性, 因此可以用作字典中的键。
列表VS元组
SN | List | Tuple |
---|---|---|
1 | list的字面语法由[]显示。 | ()显示元组的文字语法。 |
2 | 该列表是可变的。 | 元组是不可变的。 |
3 | 列表的长度可变。 | 元组具有固定的长度。 |
4 | 该列表提供了比元组更多的功能。 | 元组提供的功能少于列表。 |
5 | 该列表用于我们需要存储不受限制的简单集合的情况下, 可以更改项目的值。 | 在需要存储只读集合的情况下使用元组, 即, 不能更改项目的值。它可以用作字典中的键。 |
嵌套列表和元组
我们可以将列表存储在元组中, 也可以将列表中的元组存储到任意级别。
让我们看一个如何将元组存储在列表中的示例。
Employees = [(101, "Ayush", 22), (102, "john", 29), (103, "james", 45), (104, "Ben", 34)]
print("----Printing list----");
for i in Employees:
print(i)
Employees[0] = (110, "David", 22)
print();
print("----Printing list after modification----");
for i in Employees:
print(i)
输出
----Printing list----
(101, 'Ayush', 22)
(102, 'john', 29)
(103, 'james', 45)
(104, 'Ben', 34)
----Printing list after modification----
(110, 'David', 22)
(102, 'john', 29)
(103, 'james', 45)
(104, 'Ben', 34)
评论前必须登录!
注册