2020-11-12

@python集合快速入门

集合

集合与列表的不同

集合与列表非常相似,不同处在于:
1.不可变:集合存放的是不可变对象;
2.无序:存放无序,不按照存放的顺序存储;
3.不重复:不出现重复元素;
4.用一对花括号表示,元素之间用逗号分开。

创建空集合

s = {} #创建一个空字典 print的结果是>>{} <class ‘dict’>
s = dict()#创建一个空字典 print的结果是>>{} <class ‘dict’>
s = set() #创建一个空集合 print的结果是>>set() <class ‘set’>

向集合添加元素

#s.add(10) #向集合添加元素 print的结果是>> {10}
#s.add(10,3)#不可向集合中添加2个及以上的元素 print的结果是 >> TypeError: add() takes exactly one argument (2 given)
##s2 = {‘nmme’,5,10} #创建另一个集合
#s.update(s,s2) #向集合s添加集合s2,同时去重。print(s)>>{‘nmme’, 10, 5}
#s.update(s2) #向集合s添加集合s2,同时去重。print(s)>>{‘nmme’, 10, 5}
#s.pop() #随机删除集合s中的一个元素并返回该删除元素
#s.remove(10) #从集合s中删除指定元素10,无返回值。print(s.remove(10))>>
#KeyError: 10

集合间的运算

s = {1,2,5}
s2 = {5,6,7}
s0 = s & s2 # 集合间的交集运算&取两集合的相同元素 print(s0)>>{5} s0 = s | s2 # 集合间的并集运算|取两集合中的所有元素并去重 print(s0)>>{1, 2, 5, 6, 7}
s0 = s ^ s2 # 集合间的差集运算^:取两集合重复元素之外的元素print(s0)>>{1, 2, 6, 7}
s0 = s - s2 # 集合间的差集运算s-s2表示从s中删去s2的元素 print(s0)>>{1, 2}
注:前三种运算没有顺序之别,而第三中差集运算有顺序,即s-s2不同于s2-s

两集合的比较

s = {1,2}
s1 = {1,2,3}
s2 = {3,4,5}
s3 = {1,2}
print(s < s1) #判断集合s是否是s1的真子集>>True
print(s <= s1)#判断集合s是否是s1的子集>>True
print(s < s2) #判断集合s是否是s2的真子集>>False
print(s < s3)#判断集合s是否是s3的真子集>>False
print(s <= s3)#判断集合s是否是s3的子集>>True
print(s3 >= s)#判断集合s是否是s3的超集>>True
print(s3 > s)#判断集合s是否是s3的真超集>>False

注意:集合没有下列运算

s1 = {1,2}
s2 = {3,4,5}
s = s1+s2 #print(s)>>TypeError: unsupported
operand type(s) for +: ‘set’ and ‘set’
s = {[1,2],3,4} #集合不可存储列表,但可以存储元组和字符串,
print(s)>>TypeError: unhashable type: ‘list’
s = {{1:3},1,2,3} #集合不可存储字典 print(s)>>
TypeError: unhashable type: ‘dict’

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值