10个示例带你掌握Python中的元组
什么是元组
Python中的元组(tuple)是一种不可变的序列类型。元组中的元素不能被修改、添加或删除,因此,如果需要一组不可变对象,那么元组是一个很好的选择。
如何创建元组
在Python中,元组可以通过圆括号括起来的一组元素来创建。例如:
my_tup = (1, 2, 3)
如何访问元组中的元素
元组中的元素可以通过索引来访问,和列表是一样的。注意,元组中的索引也是从0开始的。例如:
my_tup = (1, 2, 3)
print(my_tup[0]) # 输出 1
print(my_tup[1]) # 输出 2
print(my_tup[2]) # 输出 3
如何修改元组
由于元组是不可变的对象,因此不能通过索引来修改元组中的元素。如果需要修改元组,你需要重新创建一个新的元组。例如:
my_tup = (1, 2, 3)
my_tup = (4, 5, 6) # 这里创建了一个新的元组
示例1:使用元组返回多个值
元组最常见的使用场景之一,是用来返回多个值。在函数中,可以使用元组来返回多个值,这样可以方便的返回多个不同类型的值。例如:
def my_func():
return "hello", 123
result = my_func()
print(result) # 输出 ('hello', 123)
这里返回的是一个包含两个元素的元组。你可以通过索引来获取各个元素的值:
def my_func():
return "hello", 123
result = my_func()
print(result[0]) # 输出 hello
print(result[1]) # 输出 123
示例2:使用元组进行解包操作
Python中可以使用“解包”操作来将元组中的元素赋值给多个变量。例如:
my_tup = (1, 2, 3)
a, b, c = my_tup
print(a) # 输出 1
print(b) # 输出 2
print(c) # 输出 3
这里,将元组中的三个元素赋值给了三个变量a、b、c。
示例3:使用“*”操作符来解包元组的一部分元素
在Python3中,支持使用“*”来解包元组的一部分元素。例如:
my_tup = (1, 2, 3, 4, 5)
a, b, *c = my_tup
print(a) # 输出 1
print(b) # 输出 2
print(c) # 输出 [3, 4, 5]
这里,元组中的前两个元素被赋值给了a、b变量,剩下的元素被解包成了一个列表,赋值给了c变量。
示例4:使用元组来实现多重赋值
使用元组可以实现多重赋值的操作。例如:
a, b = 1, 2
print(a) # 输出 1
print(b) # 输出 2
这里,将元组(1,2)中的两个元素同时赋值给了变量a和b。
示例5:使用“*”操作符来创建重复的元素
可以使用“*”操作符来创建重复的元素,并生成一个新的元组。例如:
my_tup = (1, 2) * 3
print(my_tup) # 输出 (1, 2, 1, 2, 1, 2)
这里,(1,2)被重复了三次,生成了一个新的元组。
示例6:使用元组来作为字典的键
元组是不可变对象,因此可以将元组作为字典的键。例如:
my_dict = {("hello", 123): "world"}
print(my_dict[("hello", 123)]) # 输出 world
这里将一个元组作为字典的键,可以方便的保存多个值的对应关系。
示例7:使用元组进行比较
元组可以进行比较操作。例如,可以通过比较元组来比较两个字符串的大小关系:
str1 = "hello"
str2 = "world"
print(str1 > str2) # 输出 False
tup1 = (1, 2, 3)
tup2 = (4, 5, 6)
print(tup1 > tup2) # 输出 False
这里,我们先比较了两个字符串的大小关系,然后比较了两个元组的大小关系。
示例8:使用元组进行拼接和复制
可以使用“+”操作符来将两个元组进行拼接操作。例如:
my_tup1 = (1, 2)
my_tup2 = (3, 4)
my_tup3 = my_tup1 + my_tup2
print(my_tup3) # 输出 (1, 2, 3, 4)
另外还可以使用“*”操作符来复制一个元组。例如:
my_tup = (1, 2)
my_tup2 = my_tup * 3
print(my_tup2) # 输出 (1, 2, 1, 2, 1, 2)
这里将my_tup复制了三次生成了一个新的元组。
示例9:元组的分片操作
元组同样支持分片操作。例如:
my_tup = (1, 2, 3, 4, 5)
print(my_tup[1:3]) # 输出 (2, 3)
这里选取了从索引1到索引3的元素。
示例10:使用元组来实现函数参数的解耦
如果想要挖掘元组的全部能力,那你需要明白元组最强大的应用场景:解耦。下面是一个示例:
def my_func(x, y):
print("x:", x)
print("y:", y)
my_tup = (1, 2)
my_func(*my_tup)
这里,我们将元组传给函数,可以使用“*”操作符来将元组解包成两个独立的参数,以此来实现函数参数的解耦。