元组是有序且不可更改的集合,在 Python 中,元组是用圆括号编写的。
1.创建元组:
tuple = ("zhangsan", "lisi", "wangwu")
print(tuple)
#运行结果
('zhangsan', 'lisi', 'wangwu')
注意:创建仅包含一个项目的元组,需要在该项目后添加一个逗号,否则python无法将变量识别为元组。
tuple = ("zhangsan",)
print(type(tuple))
#运行结果:
<class 'tuple'>
还可以用tuple()构造函数创造元组
tuple4 = tuple(("apple", "banana", "cherry")) # 请注意双括号
print(tuple4)
#运行结果:
('apple', 'banana', 'cherry')
2.访问元组:
#例1:正索引
tuple = ("zhangsan", "lisi", "wangwu")
print(tuple[1])
#运行结果:
lisi
#例2:负索引
tuple = ("zhangsan", "lisi", "wangwu")
print(tuple[-1])
#运行结果:
wangwu
#例3:索引范围(正) 注意:返回的是一个新的元组
tuple = ("zhangsan", "lisi", "wangwu","zhaoliu","tianqi")
print(tuple[2:4])
#运行结果:
('wangwu', 'zhaoliu')
#例4:索引范围(负)
tuple = ("zhangsan", "lisi", "wangwu","zhaoliu","tianqi")
print(tuple[-4:-1])
#运行结果:
('lisi', 'wangwu', 'zhaoliu')
3.遍历元组
tuple1 = ("zhangsan", "lisi", "wangwu")
for x in tuple1:
print(x)
#运行结果:
zhangsan
lisi
wangwu
4.更改元组值
1)创建元组后,将无法更改其值,元组是不可变的,恒定的。如果要更改元组的值,解决方法就是将元组转换为列表,更改列表,然后将列表转换回元组。
x = ("zhangsan", "lisi", "wangwu")
y = list(x)
y[1] = "zhaoliu"
x = tuple(y)
print(x)
print(y)
运行结果:x为新的元组,y为列表
('zhangsan', 'zhaoliu', 'wangwu')
['zhangsan', 'zhaoliu', 'wangwu']
2)元组一旦创建,就无法向其添加项目,如果添加会出现如下错误。
tuple = ("zhangsan", "lisi", "wangwu")
tuple[3] = "zhaoliu"
print(tuple)
#运行结果:
TypeError: 'tuple' object does not support item assignment
5.检查元组项目,使用in关键字
tuple = ("apple","cherry","watermelon")
if "apple" in tuple:
print("Yes, ’apple’ is in the fruits tuple")
#运行结果:
Yes, ’apple’ is in the fruits tuple
6.元组长度测算,使用len()函数
tuple1 = ("apple","cherry","watermelon")
print(len(tuple1))
#运行结果:
3
7.删除元组
#因为元组是不可更改的,因此无法删除元组中的项目,但是可以删除元组,使用del关键字即可。
tuple2 = ("apple","cherry","watermelon")
del tuple2
print(tuple2)
# 这会引发错误,因为元组已不存在。运行结果显示如下错误:
NameError: name 'tuple2' is not defined
8.合并元组
#合并两个元组,如需连接两个或多个元组,可以使用 + 运算符:
tuple1 = ("a","b" ,"c")
tuple2 = (1, 2, 3)
tuple3 = tuple1 + tuple2
print(tuple3)
#运行结果:
('a', 'b', 'c', 1, 2, 3)
9.count()方法返回指定值在元组中出现的次数
#例:返回值 4 在元组中出现的次数:
tuple = (1, 3, 7, 8, 7, 5, 4, 6, 8, 5, 2, 4)
x = tuple.count(4)
print(x)
运行结果:
2
10.index() 方法查找指定值的第一次出现,如果未找到该值,index() 方法将引发异常。
#例1:返回首次出现数字7的索引位置
tuple6 = (1, 3, 7, 8, 7, 5, 4, 6, 8, 5, 2, 4)
x = tuple6.index(7)
print(x)
#运行结果:
2
#例2:返回首次出现数字0的索引位置,因元组中不含0,因此出现错误。
tuple7 = (1, 3, 7, 8, 7, 5, 4, 6, 8, 5, 2, 4)
x = tuple7.index(0)
print(x)
#运行结果:
ValueError: tuple.index(x): x not in tuple