Python的元组与列表相似,都是有序序列,在很多情况下可以相互替换,很多操作也类似,但它们也有区别:列表属于可变序列,它的元素可以随时修改或者删除,而元组属于不可变序列,其中的元素是不能修改的,除非整体重新赋值或者删除整个元组。
1、定义元组
元组的定义和列表相似,是由一组有序的值组成,可以包含任何类型的数据,甚至可以包含其他元组。元组使用小括号“()”来定义,各个元素之间用逗号“,”隔开,例如:
动手练一练:
# 定义元组
a = (4, 5, 6, 7)
b = (4,)
c = ("Python",)
d = ("World")
print(a) # 输出 (4, 5, 6, 7)
print(b) # 输出 (4,)
print(c) # 输出 ('Python',)
print(d) # 输出 字符串“World”
执行以上代码,输出结果为:
(4, 5, 6, 7)
(4,)
('Python',)
World
上面的例子中,如果元组只有一个元素,则这个元素后面必须有逗号“,”,才能定义为一个元组,否则元素就还是原来的类型。例子中的d变量是("World"),元素“World”后面没有加逗号“,”,会被Python定义为字符串,而不是元组。
2、删除元组
由于元组中的元素值是不允许删除的,但我们可以使用del语句来删除整个元组,例如:
动手练一练:
# 删除元组
a = (4, 5, 6, 7)
del a # 删除整个元组
print(a) # 输出错误提示:名称'a'未定义
执行以上代码,输出结果为:
NameError: name 'a' is not defined
上面的例子中,Python解释器会在输出的时候提示错误:“变量a未定义”,因为前面我们已经用del语句成功删除了整个元组。
3、元组的查询方法
虽然不能修改元组中的元素,但是元组和列表的查询方法基本相同。由于元组的不可变性,使得元组的查询速度比列表更快。
(1)index()方法
index()方法用来查找某个元素在元组中出现的位置(也就是索引),当元组中有多个同样的元素,索引值为第一个匹配的元素的位置,例如:
动手练一练:
a = ("Orange", "Apple", "Banana", "Apple", "Cherry")
print("Apple元素index结果为:", a.index("Apple")) # 输出 Apple元素index结果为: 1
print("Banana元素index结果为:", a.index("Banana")) # 输出 Banana元素index结果为: 2
执行以上代码,输出结果为:
Apple元素index结果为: 1
Banana元素index结果为: 2
(2)count()方法
count()方法用来统计某个元素在元组中出现的次数,例如:
动手练一练:
a = ("Orange", "Apple", "Banana", "Apple", "Cherry")
print("初始元组为:", a)
print("Apple出现的次数为:", a.count("Apple"), "次") # 输出 Apple出现的次数为: 2 次
print("Python出现的次数为:", a.count("Python"), "次") # 输出 Python出现的次数为: 0 次
执行以上代码,输出结果为:
初始元组为: ('Orange', 'Apple', 'Banana', 'Apple', 'Cherry')
Apple出现的次数为: 2 次
Python出现的次数为: 0 次