[Python] 集合操作及方法总结

集合(set)是一个无序不重复元素序列(set可以看成数学意义上的无序和无重复元素的集合)

1.创建集合

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

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

# 创建一个空集合
aSet = set()
print(aSet) # set()
# 创建多个元素的集合
bSet = set([1,1,2,3,4,5,5])
# {1, 2, 3, 4, 5}
print(bSet) 

cSet = {1,1,2,3,4,5,5}
# {1, 2, 3, 4, 5}
print(cSet)

使用集合set可达到去重的效果(重复元素在set中自动被过滤)

2.集合常见操作方法 

2.1添加单个元素

add()将元素添加到集合set中,如果元素已经存在,则add()不会添加该元素

aSet = set([1,2,1,3])
print(aSet) # {1, 2, 3}
# add()添加单个元素
aSet.add(4)
print(aSet) # {1, 2, 3, 4}
aSet.add(1)
print(aSet) # {1, 2, 3, 4}

2.2添加多个元素

update()用于修改当前集合,可以添加新的元素或集合到当前集合中,如果添加的元素在集合中已存在,则该元素只会出现一次,重复的会忽略(可以添加多个元素,且参数可以是列表,元组,字典等)

aSet = set([1,2,1,3])
print(aSet) # {1, 2, 3}
# update()添加多个元素
aSet.update([4,5])
aSet.update((5,6))
aSet.update({6,7})
print(aSet) # {1, 2, 3, 4, 5, 6, 7}
a = {"apple", "banana", "cherry"}
b = {"google", "microsoft", "apple"}
a.update(b)
# {'google', 'apple', 'cherry', 'banana', 'microsoft'}
print(a)

2.3移除元素

remove()将指定元素从集合set中移除,如果元素不存在,则会报错

aSet = set([1,2,1,3])
print(aSet) # {1, 2, 3}
# remove()移除元素
aSet.remove(3)
print(aSet) # {1, 2}
# 报错,KeyError: 4
aSet.remove(4)

discard()删除集合中指定的元素,如果元素不存在,不会报错

aSet = set([1,2,1,3])
print(aSet) # {1, 2, 3}
# discard()移除元素
aSet.discard(3)
print(aSet) # {1, 2}
aSet.discard(4)
print(aSet) # {1, 2}

2.4计算集合元素个数

len()用于计算集合中元素的个数

aSet = set([1,2,1,3])
print(aSet) # {1, 2, 3}
# len()计算集合元素个数
print(len(aSet)) # 3

2.5清空集合 

clear()用于清空指定的集合(移除集合中的所有元素)

aSet = set([1,2,1,3])
print(aSet) # {1, 2, 3}
# clear()清空集合
aSet.clear()
print(aSet) # set()

2.6判断元素是否在集合中

in判断指定元素是否在集合set中,存在则返回True,不存在则返回False

aSet = set([1,2,1,3])
print(aSet) # {1, 2, 3}
# in判断指定元素是否在集合set中
2 in aSet # True
4 in aSet # False

扩展:not in判断指定元素是否不在集合set中

aSet = set([1,2,1,3])
print(aSet) # {1, 2, 3}
# not in判断指定元素是否不在集合set中
2 not in aSet # False
4 not in aSet # True

2.7拷贝集合 

copy()用于拷贝一个集合

aSet = set([1,2,1,3])
print(aSet) # {1, 2, 3}
# copy()用于拷贝集合
bSet = aSet.copy()
print(bSet) # {1, 2, 3}

2.8集合交集/并集/差集 

intersection()返回集合的交集

union()返回两个集合的并集

difference()返回多个集合的差集

aSet = set('aabc')
print(aSet) # {'a', 'b', 'c'}
bSet = set('bbcd')
print(bSet) # {'b', 'c', 'd'}
# 使用intersection求aSet与bSet的交集
aSet.intersection(bSet) # {'b', 'c'}
aSet = set('aabc')
print(aSet) # {'a', 'b', 'c'}
bSet = set('bbcd')
print(bSet) # {'b', 'c', 'd'}
# 使用union求aSet与bSet的并集
aSet.union(bSet) # {'a', 'b', 'c', 'd'}
aSet = set('aabc')
print(aSet) # {'a', 'b', 'c'}
bSet = set('bbcd')
print(bSet) # {'b', 'c', 'd'}
# 使用difference求aSet与bSet的差集
aSet.difference(bSet) # {'a'}
bSet.difference(aSet) # {'d'}

扩展补充知识

求两个list列表的交集、并集与差集https://blog.csdn.net/Hudas/article/details/126365642

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值