集合的使用

  • set(字符串),就把列表转换成集合。注意集合的大括号组成{},像字典,但是不是
  • 取集合的交集:集合1.intersection(集合2)
  • 取集合的并集:集合1.union(集合2)
  • 取两个集合的差集:集合1.difference(集合2)=集合1在集合2里没有的数值
  • 判断集合1是不是集合2的子集:集合1.issubset(集合2)
  • 判断集合1是不是集合2的父集:集合1.issuperset(集合2)
  • 反向差集(对称差集):把两个集合里都有的项,去除了。集合1.symmetric_difference(集合2)
  • 如果两个集合没有交集,那么返回为True集合1.isdisjoint(集合2)
  • 除了用英文单词来表示这些集合的关系,还可以用字符来表达求交集:交集1 & 交集2
  • 求并集: 集合1 | 集合2
  • 求差集:集合1-集合2,在集合1里不在集合2
  • 求对称差集:集合1 ^ 集合2
  • 增删改查:
  • 增加:集合.add(x) #添加1项 集合.update{[1,2,3]} #添加多项
  • 删除:集合.remove(x),指定删除x,如果x不存在会报错
  • 集合.pop(x)随机删除一个数值,并返回这个数值。
  • 集合.discard(x),删除指定一个值x,如果x不存在,不会报错。
  • 集合的长度:len(集合)
  • 测试x是否是s的成员:字符串,列表,字典,集合,全部都是这么写!
  • x in s
  • 测试x是否不是s的成员:
  • x not in s

 

集合的特点

集合是一个无序的,不重复的数组组合

1、去重,找出2个列表里重复的项。把一个列表变成集合就自动去重了。

2、关系测试,测试两组数据之前的交集、差集、并集等关系

常用操作:

set(字符串),就把列表转换成集合。注意集合的大括号组成{},像字典,但是不是

这种写法,是直接把列表变成集合:

取集合的交集:

集合1.intersection(集合2)

取集合的并集:

集合1.union(集合2)

取两个集合的差集:

集合1.difference(集合2)=集合1在集合2里没有的数值

判断集合1是不是集合2的子集:

集合1.issubset(集合2)

判断集合1是不是集合2的父集:

集合1.issuperset(集合2)

反向差集(对称差集):把两个集合里都有的项,去除了。

集合1.symmetric_difference(集合2)

 

 如果两个集合没有交集,那么返回为True

集合1.isdisjoint(集合2)

除了用英文单词来表示这些集合的关系,还可以用字符来表达

求交集:交集1 & 交集2

求并集: 集合1 | 集合2

求差集:集合1-集合2,在集合1里不在集合2

求对称差集:集合1 ^ 集合2

 

 增删改查:

增加:

集合.add(x)   #添加1项

集合.update{[1,2,3]} #添加多项

删除:

集合.remove(x),指定删除x,如果x不存在会报错

集合.pop(x)随机删除一个数值,并返回这个数值。

集合.discard(x),删除指定一个值x,如果x不存在,不会报错。

集合的长度:

len(集合)

测试x是否是s的成员:字符串,列表,字典,集合,全部都是这么写!

x in s

测试x是否不是s的成员:

x not in s

集合的浅复制:

集合.copy()

返回set集合的一个浅复制

 

 等价操作符说明
所有集合类型
len(s) 集合基数:集合s中元素个数
set([obj]) 可变集合工厂函数:ojb必须是支持迭代的,由obj中的元素创建集合,否则创建一个空集合
frozenset([obj]) 不可变集合工厂函数:执行方式好set()方法相同,但它返回的是不可变集合
 obj in s成员测试
 obj not in s非成员测试
 s == t等价测试
 s != t不等价测试
 s < t(严格意义上)子集测试
s.issubset(t)s <= t子集测试
 s > t(严格意义上)超集测试
s.issuperset(t)s >= t超集测试
s.union(t)s | t合并操作
s.intersec-tion(t)s & t交集操作
s.difference(t)s – t差分操作
s.symmetric_fifference(t)s ^ t对称差分操作
s.copy() 赋值操作:返回s的(浅复制)副本
仅适用于可变集合
s.update(t)s |= t(Union)修改操作:将t中的成员添加s
s.intersection_update(t)s &= t交集修改操作:s中仅包括s和t中共有的成员
s.difference_update(t)s -= t差修改操作:s中仅包括属于s但不属于t的成员
s.symmetric_difference_ update(t)s ^= t对称差分修改操作:s中包括仅属于s或仅属于t的成员
s.add(obj) 加操作:将obj添加到s
s.remove(obj) 删除操作
s.discard(obj) 丢弃操作:remove()的友好版本,如果s中存在ojb,从s中删除它
s.pop() Pop操作:移除并返回s中的任意一个值
s.clear() 清除操作:移除s中的所有元素
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值