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引用,之前的元组还在内存,之后可能会被python的垃圾回收机制收回。

五、元组的方法:
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的每一个元素本身也不能变。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值