乐趣区

关于python:Python教程10Python变量类型元组tuple的详细用法

在 Python 中,元组(Tuple)是一种有序且不可变的数据类型。元组能够蕴含任意数量的元素,用逗号分隔,并用圆括号括起来。与列表(List)不同,元组的元素不能批改。元组与列表一样,能够通过索引拜访其中的元素。

my_tuple = ("apple", "banana", "cherry")
print(my_tuple[0])  # 输入:apple

元组的不可变性意味着无奈向元组中增加、删除或批改元素。这种个性使得元组适宜用于存储一组常量值,或作为函数的返回值,以避免意外的批改。

元组在 Python 中作为一种不可变的有序数据类型,用于存储不心愿被批改的数据。它们可能提供数据保护、函数返回多个值、元组拆包等性能,使代码更加牢靠、高效和平安。

创立元组

要想应用列表,必定要先创立它,在 Python 中,能够应用圆括号 () 来创立元组,元组中的多个元素之间用逗号分隔。上面是几种常见的创立元组的办法:

  • 间接应用圆括号创立元组,这也是比拟罕用的一种形式:
my_tuple = ()  # 创立一个空元组
print(my_tuple)  # 输入: ()

my_tuple = (1, 2, 3)  # 创立蕴含整数的元组
print(my_tuple)  # 输入: (1, 2, 3)

my_tuple = ('apple', 'banana', 'cherry')  # 创立蕴含字符串的元组
print(my_tuple)  # 输入: ('apple', 'banana', 'cherry')
  • 应用逗号创立元组:
my_tuple = 1, 2, 3  # 创立蕴含整数的元组,逗号隐式示意
print(my_tuple)  # 输入: (1, 2, 3)

my_tuple = 'apple', 'banana', 'cherry'  # 创立蕴含字符串的元组,逗号隐式示意
print(my_tuple)  # 输入: ('apple', 'banana', 'cherry')
  • 应用 tuple() 函数创立元组:
my_tuple = tuple()  # 创立一个空元组
print(my_tuple)  # 输入: ()

my_tuple = tuple([1, 2, 3])  # 应用列表创立元组
print(my_tuple)  # 输入: (1, 2, 3)

my_tuple = tuple('hello')  # 应用字符串创立元组,每个字符作为一个元素
print(my_tuple)  # 输入: ('h', 'e', 'l', 'l', 'o')

须要留神的是,如果元组只蕴含一个元素,须要在元素前面加上一个逗号,以辨别元组和表达式中的括号。

my_tuple = (1,)  # 创立蕴含一个整数的元组
print(my_tuple)  # 输入: (1,)

创立元组后,能够应用索引来拜访元组的元素,也能够应用拆包操作将元组的值调配给多个变量。创立后的元组是不可变的,即元组的元素无奈被批改、删除或增加。如果须要批改元组中的元素,能够先将元组转换为列表,进行相应的操作,而后再将列表转换回元组。

拜访元组

在 Python 中,拜访元组和拜访列表是相似的,能够应用索引和切片来拜访元组中的元素。

  • 应用索引拜访元素:元组中的元素能够通过索引来拜访,索引从 0 开始,示意元组中的第一个元素。例如,对于元组 t = (1, 2, 3),能够应用 t[0] 来拜访第一个元素,应用 t[1] 来拜访第二个元素,以此类推。
t = (1, 2, 3)
print(t[0])  # 输入 1
print(t[1])  # 输入 2
print(t[2])  # 输入 3
  • 应用切片拜访元素:能够应用切片来拜访元组中的多个元素。切片应用 start:stop:step 的模式,示意从索引 start 开始到索引 stop 完结(不蕴含 stop),步长为 step。例如,对于元组 t = (1, 2, 3, 4, 5),能够应用 t[1:4] 来拜访第二个到第四个元素。
t = (1, 2, 3, 4, 5)
print(t[1:4])  # 输入 (2, 3, 4)
  • 应用负索引拜访元素:能够应用负索引来从元组的开端开始拜访元素。例如,对于元组 t = (1, 2, 3),能够应用 t[-1] 来拜访最初一个元素,应用 t[-2] 来拜访倒数第二个元素,以此类推。
t = (1, 2, 3)
print(t[-1])  # 输入 3
print(t[-2])  # 输入 2
print(t[-3])  # 输入 1

须要留神的是,元组是不可变的,因而不能对元组中的元素进行批改。如果须要批改元组中的元素,能够先将元组转换为列表,批改列表中的元素,而后再将列表转换回元组。例如:

t = (1, 2, 3)
l = list(t)  # 将元组转换为列表
l[0] = 4  # 批改列表中的元素
t = tuple(l)  # 将列表转换回元组
print(t)  # 输入 (4, 2, 3)

另外,和列表一样,当拜访元组时,要确保索引或切片的范畴在列表的无效范畴内,以避免出现索引谬误。

更改元组

在 Python 中,元组是不可变的(immutable),这意味着无奈间接批改元组中的元素。如果须要更改元组中的元素,能够通过以下办法实现:

  • 创立一个新的元组,蕴含须要更改的元素以及其余不须要更改的元素。
t = (1, 2, 3)
new_t = (4,) + t[1:]  # 创立一个新的元组,将第一个元素更改为 4
print(new_t)  # 输入 (4, 2, 3)
  • 将元组转换为列表,对列表进行批改后再转换回元组。
t = (1, 2, 3)
l = list(t)  # 将元组转换为列表
l[0] = 4  # 批改列表中的元素
t = tuple(l)  # 将列表转换回元组
print(t)  # 输入 (4, 2, 3)

须要留神的是,无论哪种办法,都会创立一个新的元组或列表来储批改后的后果,而不会间接批改原始的元组对象。因为元组是不可变的数据类型,在创立后无奈批改其外部的元素。总结起来,要更改一个元组的值,须要创立一个新的元组并将批改后的值增加进去,或者将元组转换为列表进行批改后再转换回元组,因而如果须要频繁地对元素进行批改,倡议应用列表代替元组。

删除元素

在 Python 中,因为元组是不可变的数据结构,所以无奈间接删除元组的元素。不过能够通过以下几种形式来实现元组的删除操作:

  • 应用 del 关键字删除整个元组:
t = (1, 2, 3)
del t
print(t)  # 报错:NameError: name 't' is not defined

后再尝试拜访元组会引发 NameError,因为元组曾经被删除。

  • 创立一个新的元组,不蕴含须要删除的元素:
my_tuple = (1, 2, 3)
new_tuple = tuple(element for element in my_tuple if element != 1)  # 创立新的元组,跳过须要删除的素
print(new_tuple)  # 输入: (2, 3)
  • 将元组转换为列表进行删除后再转换回元组:
my_tuple = (1, 2, 3)
my_list = list(my_tuple)  # 将元组转换为列表
my_list.remove(1)  # 从列表中删除须要删除的元素
new_tuple = tuple(my_list)  # 将列表转换回元组
print(new_tuple)  # 输入: (2, 3)

转换为列表后能够应用 remove() 办法删除元素。

须要留神的是,以上办法都会创立新的元组或列表,因为元组是不可变的数据结构,无奈间接批改原始的元组对象。因而,删除操作实际上是创立一个新的元组,不蕴含须要删除的元素。

更多精彩内容,请关注同名公众:一点 sir(alittle-sir)

退出移动版