python 数据类型set集合

  • 1、集合的特性
  • 2、集合之间的逻辑关系
  • 2.1、并集
  • 2.2、交集
  • 2.3、差集
  • 3、集合常用的方法
  • 3.1、add() 向集合中添加元素
  • 3.2、clear() 清空集合
  • 3.3、copy() 复制集合
  • 3.4、discard() 删除集合中指定的元素,该元素不存在不会报错
  • 3.5、remove() 删除集合中指定的元素,该元素不存在报错
  • 3.6、pop() 随机删除集合中一个元素
  • 3.7、update() 更新集合,把‘参数’添加到集合中
  • 3.8、union() 并集,返回这个并集
  • 3.9、intersection() 求交集 ,返回这个交集
  • 3.10、difference() 求差集,返回调用difference()方法的集合差集
  • 3.11、difference_update() 求差集,还会删除交集的部分
  • 3.12、intersection_update() 求交集,还会删除差集的部分
  • 3.13、symmetric_difference() 求差集,返回所有集合不相同的
  • 3.14、symmetric_difference() 求差集,把y中x没有的,都添加到x中
  • 3.15、isdisjoint() 判断两个集合是否包含相同的元素,如果没有返回 True,否则返回 False。
  • 3.16、issubset() 判断指定集合是否为该方法参数集合的子集。
  • 3.17、issuperset() 判断该方法的参数集合是否为指定集合的子集


1、集合的特性

1、集合中的元素是独一无二
2、集合不能用  连接符“+” 连接两个集合
3、集合是可变类型
4、集合是无序的,所以不能切片
5、空集合用set()定义,不能用{},{}定义的是空字典

2、集合之间的逻辑关系

2.1、并集

python 设置mode为export模式_并集

2.2、交集

python 设置mode为export模式_数据结构_02

2.3、差集

python 设置mode为export模式_并集_03

3、集合常用的方法

3.1、add() 向集合中添加元素

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

3.2、clear() 清空集合

x = {1,2,3,4,5}
x.clear()
print(x)  # set()

3.3、copy() 复制集合

x = {1, 2, 3, 4, 5}
a = x.copy()  
print(a)  # {1, 2, 3, 4, 5}

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

x = {1, 2, 3, 4, 5}
x.discard(3) 
x.discard(8)  # 被删除的对象不再集合中也不会报错
print(x)

3.5、remove() 删除集合中指定的元素,该元素不存在报错

x = {1, 2, 3, 4, 5}
x.remove(2)
print(x)    #{1, 3, 4, 5}
x.remove(8)  # 删除的元素,集合中不存在,报错KeyError: 8
# Traceback (most recent call last):
#   File "D:/manager_project/ShoppingMall/test_study.py", line 84, in <module>
#     x.remove(8)
# KeyError: 8

3.6、pop() 随机删除集合中一个元素

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

3.7、update() 更新集合,把‘参数’添加到集合中

注意:update( **iter ) 参数必须是迭代对象

x = {1, 2, 3, 4, 5}
x.update({'a','b','c'})
x.update(('v','vv'))
print(x)  # {1, 2, 3, 4, 5, 'b', 'v', 'vv', 'c', 'a'}

3.8、union() 并集,返回这个并集

x = {1,2,3,4,5}
y = {1,2,6,7,8}
z = x.union(y)  # 求集合x与集合y的并集,并返回一个新集合
print(z)  #{1, 2, 3, 4, 5, 6, 7, 8}

3.9、intersection() 求交集 ,返回这个交集

x = {1,2,3,4,5}
y = {1,2,6,7,8}
z = x.intersection(y)
print(z)  # {1, 2}

3.10、difference() 求差集,返回调用difference()方法的集合差集

x = {1,2,3,4,5}
y = {1,2,6,7,8}
z = x.difference(y) # 求集合x与集合y的差集,返回集合x中集合y没有的元素
print(z)  # {3, 4, 5}

python 设置mode为export模式_python_04

3.11、difference_update() 求差集,还会删除交集的部分

x = {1,2,3,4,5}
y = {1,2,6,7,8}
x.difference_update(y)
print(x)  # {3, 4, 5}

3.12、intersection_update() 求交集,还会删除差集的部分

x = {1,2,3,4,5}
y = {1,2,6,7,8}
x.intersection_update(y)
print(x)  # {1, 2}

3.13、symmetric_difference() 求差集,返回所有集合不相同的

x = {1,2,3,4,5}
y = {1,2,6,7,8}
z = set.symmetric_difference(x,y)
print(z)  # {3, 4, 5, 6, 7, 8}

3.14、symmetric_difference() 求差集,把y中x没有的,都添加到x中

x = {1,2,3,4,5}
y = {1,2,6,7,8}
x.symmetric_difference_update(y)
print(x)  # {3, 4, 5, 6, 7, 8}

3.15、isdisjoint() 判断两个集合是否包含相同的元素,如果没有返回 True,否则返回 False。

3.16、issubset() 判断指定集合是否为该方法参数集合的子集。

3.17、issuperset() 判断该方法的参数集合是否为指定集合的子集