集合(set)是一个无序不重复元素序列(set可以看成数学意义上的无序和无重复元素的集合)
我们可以使用大括号{}或者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中自动被过滤)
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}
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)
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}
len()用于计算集合中元素的个数
- aSet = set([1,2,1,3])
- print(aSet) # {1, 2, 3}
- # len()计算集合元素个数
- print(len(aSet)) # 3
clear()用于清空指定的集合(移除集合中的所有元素)
- aSet = set([1,2,1,3])
- print(aSet) # {1, 2, 3}
- # clear()清空集合
- aSet.clear()
- print(aSet) # set()
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
copy()用于拷贝一个集合
- aSet = set([1,2,1,3])
- print(aSet) # {1, 2, 3}
- # copy()用于拷贝集合
- bSet = aSet.copy()
- print(bSet) # {1, 2, 3}
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