python如何建立集合_python基础之集合

一、python中集合的定义

由不同元素的集合,集合是一组无序排列的可Hash值,可以作为字典的key特性,集合中的元素是不可变类型。***注意三点(1.不同元素的集合,2.无序排列,3.集合中的元素是不可变类型)

二、集合的创建

s =set()

s = {1,2,3,4,5}

*注:创建空集合时,只能用set(),如果用第二种方法s={},创建的实际上是一个空字典。

s ={}

print(type(s))

三、集合的功能

基本功能

添加(add, update)

s={1,2,3,5,6}s.add(4)              # 只能更新一个值,加的值不能重复

print(s)s.update('4','7')   # 可更新多个值

print(s)

执行结果如下:

{1,2,3,4,5,6}

{1,2,3,5,6,'4','7'}

清空(clear)

s={1,2,3,5,6}

s.clear()

print(s)

执行结果如下:

set()

复制

s={1,2,3,5,6}

s1=s.copy()

print(s1)

执行结果如下:

s1={1,2,3,5,6}

删除(pop, remove, discard)

s={4,10,5,7,8,4,9,2,5,‘s’}

s.pop() #因为集合是无序的,所以随机删除的print(s)

执行结果如下:

s={4, 5, 7, 8, 9, 10, 's'}

s.remove(7)  #删除指定元素3,元素不存在是报错

执行结果如下:

s={4,10,5,8,4,9,2,5,‘s’}

s.discard('hello')  #元素不存在时不报错

特有功能

交集(intersection 或' &')

p_s=['lcg','lzq','czd','cyz']

l_s=['cyz','zwx','wxj','czd']

print(p_s.intersection(l_s)) #求交集

print(p_s & l_s)

执行结果如下:

{'cyz', 'czd'}

{'cyz', 'czd'}

并集(union  或 ' |')

p_s=['lcg','lzq','czd','cyz']

l_s=['cyz','zwx','wxj','czd']

print(p_s.union(l_s))    #求并集

print(p_s|l_s)

执行结果如下:

{'lzq', 'lcg', 'zwx', 'wxj', 'czd', 'cyz'}

{'lzq', 'lcg', 'zwx', 'wxj', 'czd', 'cyz'}

差集(difference 或  '-')

p_s=['lcg','lzq','czd','cyz']

l_s=['cyz','zwx','wxj','czd']

print('差集',p_s.difference(l_s))     # 求差集,p_s减去l_s

print('差集',p_s-l_s)

执行结果如下:

差集 {'lzq', 'lcg'}

差集 {'lzq', 'lcg'}

交叉补集(symmetric.difference 或 '^')

p_s=['lcg','lzq','czd','cyz']

l_s=['cyz','zwx','wxj','czd']

print(p_s.symmetric_difference(l_s))      #交叉补集

print('交叉补集',p_s^l_s)                        #两个集合合到一起减去他们的交集

执行结果如下:

{'zwx', 'wxj', 'lzq', 'lcg'}

交叉补集 {'zwx', 'wxj', 'lzq', 'lcg'}

判断是否为有效集(isdisjoint)

s.isdisjoint:有交集为False,无交集为True    (其中s为集合)

子集和父集(issubset   和  issuperset)

s1.issubset(s2):s2是s1的子集

s2.issuperset(s1): s2是s1的父集

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值