基本数据类型—set

一、集合的区别

  1)set是什么?

    set:是一个无序接不重复的元素集合

>>> s = {11,22,33,44}
>>> s
{33, 11, 44, 22}

    里面存储元素的顺序并不是按之前定义的顺序,因此不能通过序号去取值

  2)与其它集合区别

    list:允许重复的集合,可修改

    tuple:允许重复的集合,不可修改

    dict:

    set:不允许重复的集合,可修改

二、set创建

  s = set()

  s = {11,22,33}                      与字典区别:字典是键值对,而set对象都是单个元素

  注:不能用s={}的形式创建空的set对象,s = {} 这样默认创建的是字典类型

三、set转化

  s = set(可迭代对象)              和 list 的转化很相似,但是转化后的set对象没有重复的元素

>>> l = [11,222,11,33]
>>> s = set(l)
>>> s
{33, 11, 222}
>>> a = 'asdasss'
>>> s1 = set(a)
>>> s1
{'s', 'a', 'd'}

四、set 提供的功能

  add:添加一个元素到集合里

  clear:清空集合

  copy:浅拷贝

  difference:找出两个或多个集合中不同元素,将这些元素组成一个新的集合并返回这个新的集合。如: A.difference(B) 返回A中间有B没有的元素的jihe

>>> s1 = {1,2,3,4}
>>> s2 = {1,2,3}
>>> s3 = {1,2}
>>> s1.difference(s3)
{3, 4}
>>> s1.difference(s3,s2)
{4}

  difference_update:移除相同到的元素。如: A.difference_update(B)  从A中移除B中存在的元素

>>> s1 = {1,2,3,4}
>>> s2 = {1,2,3}
>>> s1.difference_update(s2)
>>> s1
{4}

  discard:移除元素(根据值来移除元素,若值不存在不报错)

>>> s1 = {1,2,3,4}
>>> s1.discard(4)
>>> s1
{1, 2, 3}
>>> s1.discard(5)
>>> s1
{1, 2, 3}

  remove:移除元素(根据值来移除元素,若值不存在报错)

>>> s1 = {1,2,3,4}
>>> s1.remove(4)
>>> s1
{1, 2, 3}
>>> s1.remove(5)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
KeyError: 5

  intersection:返回两个或多个集合的交集

>>> s1 = {1,2,3,4}
>>> s2 = {1}
>>> s3 = {1,2}
>>> s1.intersection(s2,s3)
{1}

  intersection_update:将集合的交集赋给调用这个方法的集合

>>> s1 = {1,2,3,4}
>>> s2 = {1}
>>> s3 = {1,2}
>>> s1.intersection_update(s2,s3)
>>> s1
{1}

  isdisjoin:判断是否无交集,若没有交集返回True,反之返回False

>>> s1 = {1,2,3,4}
>>> s2 = {1}
>>> s1.isdisjoint(s2)
False
>>> s4 = {5}
>>> s1.isdisjoint(s4)
True

  issubset:判断是不是子集合

  issuperste:判断是不是父集合

>>> s1 = {1,2,3,4}
>>> s2 = {1,2}
>>> s1.issubset(s2)
False
>>> s1.issuperset(s2)
True

  pop:随机移除一个元素(arbitrary  武断的,在这里表示随机的)

  symmetric_difference:返回两个集合中除交集以外的所有元素

>>> s2 = {1,2,5}
>>> s1 = {1,2,3,4}
>>> s1.symmetric_difference(s2)
{3, 4, 5}
>>> s1.difference(s2)
{3, 4}
>>> s2.difference(s1)
{5}

  symmetric_difference_update:将交集以外的所有元素赋给调用这个方法的集合

 

>>> s2 = {1,2,5}
>>> s1 = {1,2,3,4}
>>> s1.symmetric_difference_update(s2)
>>> s1
{3, 4, 5}

 

  union:返回集合的并集

>>> s2 = {1,2,5}
>>> s1 = {1,2,3,4}
>>> s1.union(s2)
{1, 2, 3, 4, 5}

  update:批量添加元素,后面的参数要是可迭代的

>>> s1
{1, 2, 3, 4}
>>> s1.update('789')
>>> s1
{1, 2, 3, 4, '7', '9', '8'}

  

 

转载于:https://www.cnblogs.com/tandonghao/p/9151441.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值