◎python-集合

集合:可以使用大括号 { } 或者 set() 函数创建集合

【创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典】

【集合就像字典舍弃了值,key不能重复,只关心元素是否在集合中】

【集合是无序的】

  • 创建集合
a=set()#该语句不会出现{},{}只会创建一个空的字典,只是因为字典出现的比集合早
b={0,4,2,6,8}
print(a,b)
  • 转换集合【使用set】
print(set('letter'))
l=['qw','qe',12,34,'qw']
print("列表转集合",set(l))
t=(12,45,68,'wer',45)
print("元组转集合",set(t))
dict={1:'a',2 :'r',3:90,4:21,2:'r'}
print("字典转为集合只使用key",set(dict))
'''
{'e', 't', 'l', 'r'}
列表转集合 {34, 'qe', 12, 'qw'}
元组转集合 {'wer', 12, 45, 68}
字典转为集合只使用key {1, 2, 3, 4}
'''
  • 添加元素【add,update添加相同元素均不会报错】
s={'a'}
s.update('a')
s.add('a')
#add仅支持单个元素
s.update('qwert')#字符串
s.update([1,2])#列表
s.update((3,5))#元组
s.update({7:'a','b':2})#字典
s.update({4,6})#集合
print(s)
  • 移除元素 【remove,discard,pop】
s={'a','b','c',1,2}
s.remove('a')#移除指定元素,未找到报错
s.discard('a')#移除指定元素,未找到不报错
s.pop()#对集合进行无序的排列,然后将这个无序排列集合的左面第一个元素进行删除
print(s)
  • 计算集合元素个数【len】
  •  集合的运算
  1. 交集运算符&或者 intersection
  2. 并集| 或者 union()#合并两个集合
  3. 差集 -  或者 difference
  4. 异或 ^或者 symmetric_difference
  5. 子集(判断是否是另一个集合的子集)  <= 或者 issubset()
  6. 真子集(判断一个集合是另一个集合的真子集) <
  7. 超集(第二个集合的所有元素都出现在第一个元素集合中) >= 或者 issuperset()
  8. 真超集(第一个集合包含第二个集合的所有元素且还包含其他元素) >

 【超集和真超集相当于子集与真子集的逆】

  

a={1,2,3}
b={2,3,4,5}
print("交集",a&b)
print("intersection",a.intersection(b))
print("|",a|b)
print("union",a.union(b))
print("-",a-b)
print("difference",a.difference(b))
print("^",a^b)
print("symmetric_difference",a.symmetric_difference(b))
#5,6,7,8
a={1,2,3}
b={1,2,3}
print('<= {},< {}'.format(a<=b,a<b))
c={4,5,6}
d={4,5}
print('>= {},>= {}'.format(c>=d,c>d))
  • difference_update()【移除集合中的元素,该元素在指定的集合也存在】
  • isdisjoint()【判断两个集合是否包含相同的元素,如果没有返回 True,否则返回 False】
  • intersection_update() 【返回集合的交集】
  • symmetric_difference_update() 【移除当前集合中在另外一个指定集合相同的元素,并将另外一个指定集合中不同的元素插入到当前集合中】
  • clear() 【移除集合中的所有元素】
  • copy() 【拷贝一个集合】【浅拷贝,=为深拷贝】
a={1,2,4}
b={1,2,3,6}
# a.difference_update(b)#类似A-B,但直接在a对象上进行修改,返回None.
# print(a.isdisjoint(b))#判断是否有相同元素,元素类型也必须一致
# a.intersection_update(b)#类似A&B,但直接在a对象上进行修改,返回None.
# a.symmetric_difference_update(b)#A+B-(A&B)
a.clear()
print(a)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值