元组的定义:
元组的字面量定义:
- 元组使用小括号 () 来定义,将元组中的元素括在小括号中。
- 元组中的元素通过逗号 , 进行分隔,每个元素都可以是不同的数据类型。
- 使用小括号 () 来创建一个空元组。如果没有任何元素需要添加到元组中,空无组没有任何实际意义。
- 定义无组时,逗号是必须的,即使元组只包含一个元素,也需要在元素后面加上逗号,以区分它是一个元组而不是其他数据类型。
a = (1, "a", False) # 不同数据类型的元组
b = ("a", ) # 只有一个元素的元组
c = () # 空元组
元组的构造方法定义:
可以通过元组的构造方法定义元组。 当使用构造方法定义元组时,参数只能是可迭代的对象,构造方法会将参数中的元素构造成为元组的元素。 可以理解为将可迭代的对象强制类型转换为元组。
a = tuple("abc")
print(type(a), a) # <class 'tuple'> ('a', 'b', 'c')
b = tuple(["a", 1, False])
print(type(b), b) # <class 'tuple'> ('a', 1, False)
元组中的元素引用:
同字符串一样,元组也可以使用下标形式引用元组中的元素,并且,下标不能超过元组的元素个数,否则会报错:下标越界。
a = ("a", "b", "c", "d", "e")
print(a[0]) # a
print(a[5]) # IndexError: tuple index out of range
元组切片:
切片同string;
a = ("a", "b", "c", "d", "e")
print(a[0: 2]) # ('a', 'b')
print(a[:: 2]) # ('a', 'c', 'e')
print(a[:: -1]) # ('e', 'd', 'c', 'b', 'a')
print(a[-1: -3: -1]) # ('e', 'd')
元组的应用场景:
- 存储一组不可变的数据:由于元组的不可变性,它们非常适合存储一组不会发生变化的数据,如常量、配置信息等。您可以使用元组来存储相关的值,以确保数据的完整性和不变性。
- 作为字典的键值对:元组可以作为字典的键值对使用,因为元组是不可变的,可以保证字典中的键的稳定性。相比列表,元组更适合作为字典的键,因为字典的键必须是不可变的。
- 函数返回多个值:函数可以使用元组作为返回值,以便一次性返回多个相关的值。通过返回元组,函数可以将多个数据打包在一起,并且调用函数时可以方便地解包元组,获取其中的各个值。
元组的常用方法:
# len() 方法:获取元组的元素个数,用法 len(x)
a = ("a", "b", "c", "d", "e")
print(len(a)) # 5
# count() 方法: 统计元组中的指定value值的个数,用法 xx.count(value)
a = ("a", "b", "c", "d", "e")
print(a.count("c")) # 1
# index() 方法:在元组中查找指定value对应的index,找到一个对应值后即结束,可以指定查找范围,如果没有查找到,则报错,用法: x.index(value, start, end)
a = ("a", "b", "c", "d", "e")
print(a.index("b")) # 1
print(a.index("c", 0, 3)) # 2
print(a.index("c", 0, 2)) # ValueError: tuple.index(x): x not in tuple