集合

特点

  • 自带去重操作
  • 无序排列
  • 元素不可变

用来作什么嘞

  • 去重 和 关系运算
  • 去重机制使用
a= {1,5,7,9,6,4,7,3,2,1,8,5,6,9,8,4,1,2}
print(a)

#这样重复元素根本存不进去
帮列表去重
li = [5,7,9,6,4,7,3,2,1,8,5,6,9,8,4,1,2]
li = list(set(li))
print(li)

s={1,2,4,5,5,2,3,3,2,21,1,1}
s.add("67")  
#只能添加一个,添加到末尾
#加一个重复元素,没有提示
#加一个可变元素,会报错
a = {1,5,7,9,6,4,7,3,2,1,8,5,6,9,8,4,1,2}
a.add([])   #这是个列表
print(a)
#出现TypeError: unhashable type: 'list'
unhashable哈希错误
Python不支持dict的key为list或dict类型,因为list和dict类型是unhashable(不可哈希)的。

  • a.discard()
    删除指定的值
    如果删除不存在,什么也没有提示
a = {1,5,7,9,6,4,7,3,2,1,8,5,6,9,8,4,1,2}
a.discard(10)
print(a)
a.discard(4)
print(a)
  • a.pop()
    随机删除,这个很少用,除非特定的情况会返回删除元素
  • a.remove()删除指定的值但是和 discard 不同的是删除的值若是不存在,则会报错

和元素是否在列表中的方法一样也用 “元素 in 集合” 的结构进行检查

 s = {1,2,3,4}
 for i in s:
     print(i)

关系运算

这t就十分的有意思集合有很多的关系

交集(& intersection)

并集(| union)

差集(- difference)

对称差集 (^ symmetric_difference)只有两个东西之间才存在关系
s1 = {1,2,3,4,5,6,7}
s2 = {5,6,7,1}
print(s1 & s2) # 交集
print(s1 | s2) # 并集
print(s1 - s2) # 差集
print(s1 ^ s2) # 反交集
print(s1 > s2) # 父集(超集)
print(s1 < s2) # 子集

print(frozenset(s1)) # 冻结集合 更不常用
dic = {frozenset(s1):1}
print(dic)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值