python集合实际开发中的使用

162 阅读2分钟

1、集合的操作符

补集图错了, 应该是A和B不公共的部分,和交集对立。

补集图错了, 应该是A和B不公共的部分,和交集对立。

交集 :两个集合共有的元素

两个方法: 使用 & 或者 intersection方法

set1 = {1, 2, 3, 4, 5}
set2 = {2, 2, 3, 4, 5}
set3 = {6, 7}
# {2, 3, 4, 5}
print(set1 & set2)
# set()   没有交集的元素就返回空集合!
print(set1 & set3)
set1 = {1, 2, 3, 4, 5}
set2 = {2, 2, 3, 4, 5}
# {2, 3, 4, 5}
print(set1.intersection(set2))

并集:把两个集合中所有元素合并在一起, 自动去掉重复元素

两个方法: 使用 | 或者 union方法

set1 = {1, 2, 3, 4, 5}
set2 = {2, 2, 3, 4, 5}
# {1, 2, 3, 4, 5}
print(set1 | set2)
# {1, 2, 3, 4, 5}
print(set1.union(set2))

差集:集合1减去集合2中相同的元素,剩下的元素就是差集

两个方法: 使用 | 或者 union方法

set1 = {1, 2, 3, 4, 5}
set2 = {2, 2, 3, 4, 5}
# {1}
print(set1 - set2)
# {1}
print(set1.difference(set2))

补集 :也叫对称差集,去掉两个集合中重复的元素之后,剩下的元素就是补集

两个方法: 使用 ^ 或者 symmetric_difference

set1 = {1, 2, 3, 4, 5}
set2 = {2, 3, 4, 5, 6}
# {1, 6}
print(set1 ^ set2)
# {1, 6}
print(set1.symmetric_difference(set2))

2、如何判断访问的元素是否存在于集合中呢?

通过in / not in 方法, 判断元素是否存在于集合中。

in方法: 当查找的元素在集合中的时候,输出的结果就是true,否则就是false

set1 = {1, 2, 3, 4, 5}
# True
print(1 in set1)

not in方法: 当查找的元素不在集合中的时候,输出的结果就是true否则就是alse

set1 = {1, 2, 3, 4, 5}
# False
print(1 not in set1)

3、如何向集合中添加元素

add方法: 向集合中添加元素

注意:在向集合中添加元素的时候,只能添加不可变的值比如说字符串或者是元组

set1 = {1, 2, 3, 4, 5}
set1.add('a')
# {1, 2, 3, 4, 5, 'a'}
print(set1)

# list1 = ['b', 'c']
# set1.add(list1)
# # 报错  TypeError: unhashable type: 'list'
# print(set1)

tuple1 = ('b', 'c')
set1.add(tuple1)
# {1, 2, 3, 4, 5, ('b', 'c'), 'a'}
print(set1)

4、集合的删除操作

  1. pop方法:指的是删除任意一个元素

    如果是空集合, 用这个方法是会报错的 KeyError: 'pop from an empty set'

set1 = {1, 2, 3, 4, 5}
set1.pop()
# {2, 3, 4, 5}
print(set1)

set2 = set()
# 报错 KeyError: 'pop from an empty set'
set2.pop()
  1. remove方法:指的是删除指定元素

    如果删除不存在的元素会报错 KeyError

set1 = {1, 2, 3, 4, 5}
set1.remove(3)
# {1, 2, 4, 5}
print(set1)
  1. clear方法:指的是清除集合中所有元素
set1 = {1, 2, 3, 4, 5}
set1.clear()
# set()
print(set1)