Python基础-Python中集合Set的高级操作介绍

liftword4个月前 (02-26)技术文章28

在之前的分享中,我们介绍了关于Python中Set集合的简单操作,实际上在Python中还提供了关于Set集合更多强大的操作功能,下面我们就来详细看看这些高级功能的使用。

交集、并集、差集和对称差集

两个集合的交集表示该操作会返回两个集合中都存在的元素而组成的一个新的集合。代码如下所示。

# 创建两个集合
set1 = {1, 2, 3, 4, 5}
set2 = {4, 5, 6, 7, 8}

# 交集
intersection = set1.intersection(set2)
print("Intersection:", intersection)  # Output: {4, 5}

两个集合的并集表示该操作会返回两个集合中所有唯一的元素所组成的一个新的集合,代码如下所示。

# 创建两个集合
set1 = {1, 2, 3, 4, 5}
set2 = {4, 5, 6, 7, 8}

# 并集
union = set1.union(set2)
print("Union:", union)  # Output: {1, 2, 3, 4, 5, 6, 7, 8}

两个集合的差集表示只会返回存在于第一个集合中的元素,也就是说如果有两个集合set1和set2,那么set1.difference(set2) 返回 {1, 2, 3},即只包含在 set1 中但不在 set2 中的元素。如下所示。

# 创建两个集合
set1 = {1, 2, 3, 4, 5}
set2 = {4, 5, 6, 7, 8}

# 差集
difference = set1.difference(set2)
print("Difference:", difference)  # Output: {1, 2, 3}

两个集合的对称差集,表示返回两个集合中仅存在于其中一个集中的元素所组成的元素集合。也就是说set1.symmetric_difference(set2) 返回 {1, 2, 3, 6, 7, 8},即包含在 set1set2 中但不同时存在于两者中的元素。如下所示。

# 创建两个集合
set1 = {1, 2, 3, 4, 5}
set2 = {4, 5, 6, 7, 8}

# 对称差集
symmetric_difference = set1.symmetric_difference(set2)
print("Symmetric Difference:", symmetric_difference)  # Output: {1, 2, 3, 6, 7, 8}

集合操作符

在集合操作中也可以直接使用符号来进行上述的操作。如下所示。

  • &: 交集操作符。
  • |: 并集操作符。
  • -: 差集操作符。
  • ^: 对称差集操作符。

给出上述操作示例代码如下所示。

# 使用操作符进行集合操作
intersection_op = set1 & set2
union_op = set1 | set2
difference_op = set1 - set2
symmetric_difference_op = set1 ^ set2

print("Intersection (Operator):", intersection_op)  # Output: {4, 5}
print("Union (Operator):", union_op)  # Output: {1, 2, 3, 4, 5, 6, 7, 8}
print("Difference (Operator):", difference_op)  # Output: {1, 2, 3}
print("Symmetric Difference (Operator):", symmetric_difference_op)  # Output: {1, 2, 3, 6, 7, 8}

子集和超集检查

子集和超集的检查,就是就是判断一个集合是否为另一个集合的子集,或者是超集,子集表示该集合的元素要比原来集合的少,而超集则表示该集合比原集合的数据元素多,如下所示。

# 子集和超集检查
subset_check = {1, 2}.issubset(set1)
superset_check = set1.issuperset({1, 2})

print("Subset Check:", subset_check)  # Output: True
print("Superset Check:", superset_check)  # Output: True
  • issubset():判断一个集合是否是另一个集合的子集。
  • issuperset():判断一个集合是否是另一个集合的超集。

集合推导式

在之前我们也介绍过集合推导式,表示允许通过某些条件来创建一个新的集合操作。如下所示。

# 集合推导式
evens = {x for x in range(10) if x % 2 == 0}
print("Set Comprehension:", evens)  # Output: {0, 2, 4, 6, 8}

增强赋值操作

增强赋值操作的意思就是说,可通过一种简单的方式来更新集合数据,而不需要新的赋值操作。如下所示。

set1.update({6, 7})
print("Updated set1:", set1)  # Output: {1, 2, 3, 4, 5, 6, 7}

set1.intersection_update(set2)
print("Intersection Update:", set1)  # Output: {4, 5}

set1.difference_update(set2)
print("Difference Update:", set1)  # Output: set()
  • update(): 将一个集合的元素添加到另一个集合中。
  • intersection_update(): 保留两个集合的交集并更新原始集合。
  • difference_update(): 从一个集合中移除与另一个集合相同的元素并更新原始集合。
  • symmetric_difference_update(): 将两个集合中仅存在于一个集合中的元素添加到原始集合中。

集合的复制

可以通过使用copy()方法或set()构造函数进行集合的复制。

# 复制集合
copy_of_set1 = set1.copy()
print("Copy of set1:", copy_of_set1)  # Output: set()

删除操作

通过如下的方法可以对集合中的元素进行删除操作,如下所示。

  • remove():删除集合中的指定元素,如果元素不存在,则引发 KeyError 异常。
  • discard():删除集合中的指定元素,如果元素不存在,则不执行任何操作。
  • pop():随机删除并返回集合中的一个元素。
# 删除操作
set1.remove(4)
print("After removing 4:", set1)  # Output: {5}

set1.discard(5)
print("After discarding 5:", set1)  # Output: set()

popped_element = set2.pop()
print("Popped element from set2:", popped_element)  # Output: Some element from set2

清空集合

通过clear()函数来清空集合中的所有元素操作。

# 清空集合
set2.clear()
print("Cleared set2:", set2)  # Output: set()

总结

以上就是Set集合操作的一些高级操作,当然在实际使用的时候需要结合实际情况来灵活应变,这样才能发挥出集合高级操作的作用。

相关文章

三分钟掌握Python 中最常用的 10 种 Set 方法

Python 中的集合至关重要,也是 Python 中最常用的内置数据类型之一。集合具有一些主要属性。集合中的元素必须是唯一的。套装中不允许有重复项。它们是无序的设置项目不可更改,但您可以删除和添加新...

神奇的 Python set():如何让重复元素无处可藏

前言如果你还没认真研究过 Python 中的集合(set)类型,那你可真是错失了一项神器!集合不仅能让你的代码变得更高效,还能避免一堆重复数据让你头疼。每当你用 Python 编程时,数据就像是无序的...

Python集合类型Set详细总结_python里面集合

(一)Python集合数据类型Set总结-1 1、set特点set 可以过滤重复元素,本身是无序的(元素顺序是混乱的)不重复的示例-1:set = {1,2,2,3,4,4,5,6,7,7}#输出se...

Python基础篇(三)dict和set类型_python dicts

dict一、dict的定义dict即字典,相当于golang中的map类型,key-value型.具有极快的查找速度.由于dict中key的值是唯一的,因此如果多次赋值,最终结果为最后一次的赋值.二、...

python开发破译WiFi教程,你不看看吗?

一、安装python环境(1)首先安装在python 官网安装python环境(https://www.python.org/getit/)(2)选择Downloads--Windows点开,如图所示...

Python四大数据结构 list,tuple,set,dict 的特点与使用语法

python里面有四大数据结构:列表list,元组tuple,集合set,字典dict列表list列表的元素可以重复列表里面元素的类型可以是任意的列表是可变的,可以对列表的元素进行修改或者删除列表是有...