一.元组定义
元组(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]= 11classes[1] = 22
print(tuple1)
输出如下
('a', 'b', [1, 2])
('a', 'b', [11, 22])
三.元组遍历
元组是有序的,有下标,可以切片,拼接,可以通过for循环遍历获取每一个元素
tuple1 = (1, 2, 3, 4, 5)for i intuple1: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((2)) #.count(e),获取元素e在元组中出现的次数
print((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.保证数据安全
如果为了保证数据不被人修改,可以定义为元组类型。