一.元组定义
元组(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.保证数据安全
如果为了保证数据不被人修改,可以定义为元组类型。