Python学习之【集合】

学习内容:

  1. Python学习之【集合】

学习时间:

  • 2022/6/14 下午10:02

学习产出:

集合是可变类型的序列、是没有value的字典,元素不重复、无序。

一、创建

s1 = { 1, 2, 3, 4, 5, 5, 5, 6, 7, 7 }
print(s1) #{1, 2, 3, 4, 5, 6, 7}

s2 = set(range(6))
print(s2) #{0, 1, 2, 3, 4, 5}
print(set(['列', '表'])) # {'表', '列'}
print(set('字符串')) # {'串', '符', '字'} 只能传1个字符串,否则报错
print(set(('元', '组', 1, 2, 2, 13))) # {1, 2, '组', 13, '元'}
print(set({'a', 1, 5, 2, '集', '合'})) # {1, 2, 'a', 5, '集', '合'}

定义一个空集合

s3 = set()
print(s3)

二、相关操作

s4 = {1, 2, 3}
1.判断

in
not in

2.新增

add() 一次添加一个元素;
update() 至少添加一个元素

s4.add('add')
print(s4)
s4.update('字符')
s4.update(['update',2])
print(s4) #{1, 2, 3, '符', '字', 'add', 'update'}
3.删除

remove():一次删一个,指定元素不存在抛异常;
discard():一次删一个,指定元素不存在不抛异常;
pop():删除第一个元素,无参;
clear():清空集合;

s4.remove('字')
print(s4) #{1, 2, 3, 'add', '符', 'update'}
s4.pop()
print(s4)
s4.pop()
print(s4)

三、集合的关系

1.相等: ==,!=
s1 = { 10, 20, 30 }
s2 = { 20, 30, 10 }
print(s1==s2) #True
print(s1!=s2) #False
2.一个集合是否是另一个集合的子集: issubset
s3 = { 1, 2, 3, 4}
s4 = { 1, 2, 3 }
s5 = { 1, 2, 5}
print(s4.issubset(s3)) #True
print(s5.issubset(s3)) #False
3.一个集合是否是另一个集合的超集: issuperset
print(s3.issuperset(s4)) #True
print(s3.issuperset(s5)) #False
4.两个集合 是否没有交集: isdisjoint
s6 = { 7, 8 }
print(s3.isdisjoint(s5)) #False
print(s3.isdisjoint(s6)) #True

四、集合的数学操作

s1 = { 10, 20, 30, 40 }
s2 = { 10, 30, 50, 60 }
1.交集
#  {10, 30}
print(s1 & s2)
print(s1.intersection(s2))
2.并集
# {40, 10, 50, 20, 60, 30}
print(s1 | s2)
print(s1.union(s2))
3.差集
 #{40, 20}
print(s1.difference(s2))
print(s1 - s2)
#{50, 60}
print(s2.difference(s1)) 
print(s2 - s1)
4.对称差集
print(s1.symmetric_difference(s2))  {40, 50, 20, 60}

五、集合生成式

s = {i*i for i in range(1, 10)}
print(s)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值