python基础梳理(六)容器类型之元组tuple

元组:
一、基本概念
是一种不可改变的序列。但是和list一样,元组可以存放任意的类型

同str一样,因为它是序列,但不能修改,所以我们只能用索引来引用或者查看内容

表示方法:
用小括号()括起来,如果是单个元素 括起来后加逗号;
使用:
创建空元组的字面值:
t = ()
创建非空的字面值:
t = 200, 等同于 t = (200,)
t = (20,2)
t = (1,2,3)
t = 100,200,300
t = (100+200,)

一些错误的示例:
1.单个元素不加逗号
在这里插入图片描述
2.序列赋值:
在这里插入图片描述
二、构造函数
T = tuple() #构造一个空的元组
T = tuple(iterable) #构造一个将可迭代对象进行拆包(unpack)的元组

在这里插入图片描述
三、元组的运算:
元组的运算同列表的运算方式一致
算术运算
+ += * *=
比较运算:
< <= > >= == !=
in/ not in运算:查看元组中是否存在某个元素

四、索引与切片:
1.元组的索引和切片等同于列表的索引和切片
2.元组的切片返回一个元组
3.元组不能索引赋值和切片赋值,元组不可修改

五、元组的方法:
t.count(value):统计数据value在元组中出现的次数
t.index(value,start,end):返回value在元组中的索引

六、序列相关的函数:
len(x)
max(x)
min(x)
sum(x)
any(x)
all(x)
reverse(iterable):返回反向顺序的迭代器对象
sorted(iterable,reverse = False):返回已经排序的列表(对所有的序列都可以排序)

七、元组中的列表可以修改吗:
在这里插入图片描述

我们来看一下这个图:
在这里插入图片描述
1.tuple中实际上保存的是数据的内存id
2.上图中看着我们好像修改了tuple,实际上只是修改了list的值,
因为tuple中只是存放了list的地址,而list是允许修改的,list的地址在tuple中不能修改,实际上也没有修改
3.tuple所谓的“不变”是说,tuple的每个元素,指向永远不变。即指向’a’,就不能改成指向’b’,指向一个list,就不能改成指向其他对象,但指向的这个list本身是可变的
4.要创建一个内容也不变的tuple怎么做?那就必须保证tuple的每一个元素本身也不能变。

猜你喜欢

转载自blog.csdn.net/KingOfMyHeart/article/details/88764137