python基础:集合

1、集合总结

2、集合基础

2.1、集合表示{}

  • aset = {"a", "b", "c"}

 

2.2、空集合表示

  • 空集合只能表示成:aset = set(),不能表示成{},因为{}是空字典的表示方式。

 

2.3、集合是可变对象

  • 集合中元素唯一,无序
  • 集合是可变对象,这意味着对集合的操作,可能会影响到原始集合。

 

3、集合基本方法

3.1、新增元素add

  • add(element):集合中新增一个原始element,直接在原有集合中修改

 

3.2、删除元素clear、discard、pop、remove

  • clear():删除集合全部元素
  • discard(element):返回None,删除集合中的元素,如元素不存在,不删除,直接“原地”修改集合。
  • remove(element):返回None,类似方法discard(),不同的是remove()方法,如果元素不在集合中,会报错KeyError。
  • pop():返回被删除的元素,因集合是无序,删掉的值是随机的

以上修改,会直接在原有集合中删除,会影响原有集合。

aset = {"a", "b", "F", "c", "d"}
# discard参数element可不在集合中
result = aset.discard("a")
# remove参数element如不在集合中,会报错KeyError
result = aset.remove("b")
# pop随机删除
result = aset.pop()
# clear全部删除
result = aset.clear()

 

3.3、复制集合copy

  • copy:会重新分配新的内存空间
  • 深度拷贝deepcopy

 

3.4、差集differnce、differnce_update

  • difference(s):返回差集,不会更改操作的2个集合
  • difference_update:返回None,会更新第1个集合
aset = {"a", "b", "F", "c", "d"}
bset = {"a", "c", "test"}
# 返回aset-bset的差集,不会修改aset和bset
result = aset.difference(bset)
>> {“b”, "F", "d"}

# 返回None,会直接修改aset
result = aset.difference_update(bset)
>> None

 

3.5、交集intersection、intersection_update

  • intersection(s):返回交集,不会更改操作的2个集合
  • intersection_update(s):返回None,会更改操作的第1个集合
aset = {"a", "b", "F", "c", "d"}
bset = {"a", "c", "test"}
# 返回交集,不会修改aset和bset集合
result = aset.intersection(bset)
>> {"a", "c"}

# 返回None,会修改aset集合
result = aset.intersection_update(bset)
>> None

 

3.6、并集union、update

  • union(s):返回并集,不会修改操作的2个集合
  • update(s):返回None,会直接在第1个集合中修改
aset = {"a", "b", "F", "c", "d"}
bset = {"a", "c", "test"}

# union返回并集,不会影响aset和bset集合
result = aset.union(bset)
>> {"a", "b", "c", "d", "F", "test"}

# update返回None,会修改第1个集合
result = aset.update(bset)
>> None

 

3.7、移除2个集合中相同的元素symmetric_difference、symmetric_difference_update

  • symmetric_difference(s):返回移除相同的元素后的并集,不会修改操作的2个集合
  • symmetric_difference_update:返回None,会修改操作的第1个集合
aset = {"a", "b", "F", "c", "d"}
bset = {"a", "c", "test"}
# 返回2个集合中去掉相同元素的集合,不会修改操作的集合
result = aset.symmetric_difference(bset)
>> {'F', 'b', 'test', 'd'}

# 返回None,会修改操作的第1个集合
result = aset.symmetric_difference_update(bset)
>> None

 

3.8、判断是否交集或子集isdisjoint,issubset,issuperset

  • isdisjoint(s):2个集合不相交,返回True;否则返回False
  • issubset(s):2个集合是否子集关系,如果是返回True
  • issuperset(s):2个集合的父类关系,同issubset,只是写法上不同。

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值