一.元组定义
元组(tuple)使用小括号()来定义,它是不可变数据类型,它的元素不可变,但元素的元素是可变的,比如tuple中一个元素为list列表时,list中的元素是可变的
# 在定义tuple时,元素就必须确定下来
aa = (1, "ok")
# aa[0] = 2 tuple元素不能修改
print(aa)
# 在定义只有一个元素的tuple时,注意要在第一个元素后加上",",aa=(2,),否则会被认为是赋值aa=(2)
aa = (2, ) # tuple
print(type(aa))
aa = (2) # int,被认为是一个数字
print(type(aa))
二.理解元素不可变
# tuple的元素指向不变,但指向的内容可变
classes = [1, 2]
tuple1 = ("a", "b", classes) # tuple1指向classes没有变,但classes本身的内容是可以变的
print(tuple1)
classes[0] = 11
classes[1] = 22
print(tuple1) 输出如下
('a', 'b', [1, 2])
('a', 'b', [11, 22])
三.元组遍历
元组是有序的,有下标,可以切片,拼接,可以通过for循环遍历获取每一个元素
tuple1 = (1, 2, 3, 4, 5) for i in tuple1:
print(i) 输出如下
1
2
3
4
5
四.元组的切片
常见切片如下
tuple1 = (1, 2, 3, 4, 5) print(tuple1[::]) # 获取所有元素
print(tuple1[::-1]) # 倒序打印元组所有元素,tuple1元素本身不变
print(tuple1[1:3]) # 获取下标为1, 2的元素(2, 3)
print(tuple1[:4]) # 不写起始位置,默认从头开始,0,1,2,3,(1,2,3,4)
print(tuple1[3:]) # 不写结束位置,默认一直截到最后,3,4,(4,5) 输出结果如下
(1, 2, 3, 4, 5)
(5, 4, 3, 2, 1)
(2, 3)
(1, 2, 3, 4)
(4, 5)
五.元组的常见方法使用
tuple1 = (1, 2, 3, 4, 5) # 获取元组元素个数,即元素长度
print(len(tuple1))
print(tuple1.__len__()) 输出结果如下
5
5
tuple1 = (1, 2, 3, 2, 4, 5) print(tuple1.count(2)) # .count(e),获取元素e在元组中出现的次数
print(tuple1.index(2)) # .index(e),获取元素e在元组中第一次出现时的下标 输出结果如下
2
1
六.元组的应用场景
1.作为函数的参数和返回值
元组中的数据通常类型都不不同的,所以通过for遍历使用的很少
2.格式化输出时使用的就是一个元组
print("my name is %s, now is %d years old" % ("xiaoming", 23))
也可以这样写
user_info = ("xiaoming", 23)
print("my name is %s, now is %d years old" % userinfo)
或者这样写
user_info = "my name is %s, now is %d years old" % ("xiaoming", 23)
print(user_info)
3.保证数据安全
如果为了保证数据不被人修改,可以定义为元组类型。