9.python元组与集合

提示:
python元组与集合
元组没有增删改查:**元组是python内置的数据结构之一,是不可变序列(无增删改操作)**不可变序列还有字符串


不可变序列:不是不能进行增删改(相对于用户而言),而是增删改之后,id会发生变化,原id指向内容没有改变

在这里插入图片描述

元组

()存储内容和列表可以相同,性质有些区别
在这里插入图片描述

为什么要将元组设计为不可变序列呢?
多任务环境下,同时操作对象时不需要加锁(第一个任务操作后,不希望其它任务做出修改,就加锁,只允许其它任务看而不做),不可变序列就可以避开这个操作
在这里插入图片描述

第三步对于列表进行的操作[],是可修改的,第二步修改元组是不正确的,前者是对对象(可修改)进行了修改,指针是没有变的。而第二步修改了指针,这是不合法的在这里插入图片描述

元组创建

#1
t=('python','hello',90)
#2
t=tuple(('python','hello',90))
#只包含一个元组的元素需要使用小括号和逗号
t=(10,)
#空元组
t2=()
t3=tuple()

元组遍历

t=('python','world',98)
print(t[1])#获取
for item in t:
	print(item)

集合

集合是可变类型序列
是没有value的字典

在这里插入图片描述

#1
s={2,2,3,4,6,6}#{2,3,4,6}不允许重复!否则去除
#2内置函数set()
s1=set(range(6))#{0,1,2,3,4,5}
s2=set([1,2,3,3])#{1,2,3}
s3=set((1,2,3,4,4,5,65))#{65,1,2,3,4,5}!集合中的元素是无序的!
s4=set('python)#{'n','h','p','y','t','o'}!无序性
#空集合
s5=set()#{}空字典!

集合的相关操作

集合是无序的,就不用管加在哪里了!

在这里插入图片描述

s.update(元组,列表)都自动解析为单个元素并加入到集合s中
pop随机删(好像初始元组按序删),不能加参数

集合间的关系

在这里插入图片描述

isdisjoint,没交集

集合的数学操作

》交,差,并,对称差(不相交的部分)

s1={1,2,3,4}
s2={2,3,4,5,6}
#交集
print(s1 & s2)
print(s1.intersection(s2))
#并集
print(s1 | s2)
print(s1.union(s2))
#差集
print(s1-s2)
print(s1.difference(s2))
#对称差集
print(s1^s2)
print(s1.symmetric_difference(s2))

集合生成式

在这里插入图片描述

#列表生成式
lst=[i*i for i in range(6)]
print(lst)#[0,1,4,9,16,25]
s={i*i for i in range(6)}
print(s)#随机的{0,1,4,9,16,25}

小总结

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

心灵排骨汤

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值