当前位置: 首页 > article >正文

python中的集合

文章目录

    • 集合
    • frozenset函数
    • 集合比较
    • 集合关系运算
    • 集合的内建函数

集合

在Python中,集合(set)是一种无序、不重复元素的数据结构。它提供了一系列方法来操作和管理集合对象。下面是几个常用的集合方法:

  1. set():创建一个空集合。
set1 = set()
print(set1)  # 输出: set()
  1. set(iterable):使用可迭代对象创建一个集合。
set2 = set([1, 2, 3, 4, 5])
print(set2)  # 输出: {1, 2, 3, 4, 5}
  1. add(element):向集合中添加一个元素。
set3 = set()
set3.add(3)
print(set3)  # 输出: {3}
  1. remove(element):从集合中移除指定元素,如果元素不存在则会抛出KeyError异常。
set4 = {1, 2, 3, 4, 5}
set4.remove(3)
print(set4)  # 输出: {1, 2, 4, 5}
  1. discard(element):从集合中移除指定元素,如果元素不存在则不会抛出异常。
set5 = {1, 2, 3, 4, 5}
set5.discard(3)
print(set5)  # 输出: {1, 2, 4, 5}
  1. pop():随机移除一个元素,并返回该元素的值。
set6 = {1, 2, 3, 4, 5}
element = set6.pop()
print(element)  # 输出: 随机一个元素的值
print(set6)  # 输出: 移除了一个元素的集合
  1. clear():移除集合中的所有元素,使其变为空集合。
set7 = {1, 2, 3, 4, 5}
set7.clear()
print(set7)  # 输出: set()
  1. len():返回集合中元素的数量。
set8 = {1, 2, 3, 4, 5}
print(len(set8))  # 输出: 5

以上是集合中常用的一些方法,可以帮助我们进行集合的操作和管理。需要根据实际需要选择适合的方法来操作和管理集合对象。

frozenset函数

在Python中,frozenset是一种不可变的集合。与普通的set不同,frozenset的内容在创建之后就无法修改。它的语法如下:

frozenset([iterable])

其中,iterable参数是可迭代对象,可以是列表、元组、字符串等。

frozenset函数会返回一个新的frozenset对象,该对象包含了iterable中的元素。以下是一些示例用法:

# 创建一个空的frozenset
frozen_set1 = frozenset()
print(frozen_set1)  # 输出: frozenset()

# 使用列表创建一个frozenset
frozen_set2 = frozenset([1, 2, 3, 4, 5])
print(frozen_set2)  # 输出: frozenset({1, 2, 3, 4, 5})

# 使用元组创建一个frozenset
frozen_set3 = frozenset((1, 2, 3, 4, 5))
print(frozen_set3)  # 输出: frozenset({1, 2, 3, 4, 5})

# 使用字符串创建一个frozenset
frozen_set4 = frozenset("hello")
print(frozen_set4)  # 输出: frozenset({'h', 'o', 'e', 'l'})

frozenset对象具有一些与普通set对象相同的特性,如成员关系测试、迭代元素等,但不能修改或添加元素。frozenset主要用于需要不可变集合的场景,例如作为字典的键值或作为另一个集合的元素。

集合比较

在Python中,可以使用比较运算符(如==、!=、<、<=、>和>=)来比较两个集合的内容。下面是一些集合比较的例子:

set1 = {1, 2, 3, 4, 5}
set2 = {3, 4, 5, 6, 7}

# 判断两个集合是否相等
print(set1 == set2)  # 输出: False

# 判断两个集合是否不相等
print(set1 != set2)  # 输出: True

# 判断一个集合是否是另一个集合的子集
print(set1 < set2)  # 输出: False
print(set1 <= set2)  # 输出: False

# 判断一个集合是否是另一个集合的超集
print(set1 > set2)  # 输出: False
print(set1 >= set2)  # 输出: False

# 检查两个集合是否存在交集
print(set1.isdisjoint(set2))  # 输出: False

需要注意的是,上述比较运算符的结果都是一个布尔值,即True或False。其中,"==“用于判断两个集合是否包含相同的元素,”!=“用于判断两个集合是否包含不同的元素,”<“和”<=“用于判断一个集合是否是另一个集合的子集,”>“和”>="用于判断一个集合是否是另一个集合的超集。

另外,还可以使用isdisjoint()方法来检查两个集合是否存在交集。如果没有交集,则返回True;否则返回False。
在这里插入图片描述

集合关系运算

集合关系运算是指在集合之间进行的一系列操作,例如求并集、交集、差集和对称差集等。在Python中,可以使用不同的集合方法或运算符来进行这些操作。下面是一些常见的集合关系运算:

  1. 并集(Union):表示两个集合中的所有元素,且每个元素只出现一次。可以使用|运算符或union()方法来计算并集。
set1 = {1, 2, 3}
set2 = {3, 4, 5}

# 使用运算符计算并集
union_set = set1 | set2
print(union_set)  # 输出: {1, 2, 3, 4, 5}

# 使用方法计算并集
union_set = set1.union(set2)
print(union_set)  # 输出: {1, 2, 3, 4, 5}
  1. 交集(Intersection):表示两个集合中共有的元素。可以使用&运算符或intersection()方法来计算交集。
set1 = {1, 2, 3}
set2 = {3, 4, 5}

# 使用运算符计算交集
intersection_set = set1 & set2
print(intersection_set)  # 输出: {3}

# 使用方法计算交集
intersection_set = set1.intersection(set2)
print(intersection_set)  # 输出: {3}
  1. 差集(Difference):表示在一个集合中存在,但在另一个集合中不存在的元素。可以使用-运算符或difference()方法来计算差集。
set1 = {1, 2, 3}
set2 = {3, 4, 5}

# 使用运算符计算差集
difference_set = set1 - set2
print(difference_set)  # 输出: {1, 2}

# 使用方法计算差集
difference_set = set1.difference(set2)
print(difference_set)  # 输出: {1, 2}
  1. 对称差集(Symmetric Difference):表示两个集合中不重复的元素,即在一个集合中存在但不在另一个集合中,同时也不在两个集合的交集中。可以使用^运算符或symmetric_difference()方法来计算对称差集。
set1 = {1, 2, 3}
set2 = {3, 4, 5}

# 使用运算符计算对称差集
symmetric_difference_set = set1 ^ set2
print(symmetric_difference_set)  # 输出: {1, 2, 4, 5}

# 使用方法计算对称差集
symmetric_difference_set = set1.symmetric_difference(set2)
print(symmetric_difference_set)  # 输出: {1, 2, 4, 5}

需要注意的是,集合关系运算的结果都是一个新的集合,原始集合本身并没有被修改。此外,可以根据具体需要选择使用运算符或方法来进行集合关系运算。

集合的内建函数

在Python中,集合(set)是一种内建类型,它提供了一些常用的内建函数来处理和操作集合。下面是一些常见的集合内建函数:

  1. len():返回集合中元素的个数。
set1 = {1, 2, 3}
print(len(set1))  # 输出: 3
  1. any():如果集合中至少有一个元素为True,则返回True,否则返回False。
set1 = {0, False, '', None}
set2 = {0, False, '', None, 1}
print(any(set1))  # 输出: False
print(any(set2))  # 输出: True
  1. all():如果集合中所有元素都为True,则返回True,否则返回False。
set1 = {1, True, 'hello'}
set2 = {0, '', None, False}
print(all(set1))  # 输出: True
print(all(set2))  # 输出: False
  1. max():返回集合中的最大元素,如果集合为空则抛出一个ValueError异常。
set1 = {1, 2, 3}
print(max(set1))  # 输出: 3
  1. min():返回集合中的最小元素,如果集合为空则抛出一个ValueError异常。
set1 = {1, 2, 3}
print(min(set1))  # 输出: 1
  1. sorted():返回一个排序后的列表,其中包含集合中的所有元素。
set1 = {3, 1, 2}
sorted_list = sorted(set1)
print(sorted_list)  # 输出: [1, 2, 3]

需要注意的是,这些内建函数都是对集合中的元素进行操作,而不会改变集合本身。此外,还可以使用其他Python内建函数来处理集合,比如sum()、enumerate()等,具体取决于需要解决的问题。


http://www.kler.cn/a/158385.html

相关文章:

  • IDEA中,光标移动快捷键(Shift + 滚轮前后滚动:当前文件的横向滚动轴滚动。)
  • 深入理解 Vue 组件:构建优雅的前端应用
  • JAVA代码优化:Token验证处理
  • Isaac Sim教程05 机器人简单组装及传感器
  • 特殊二叉树——堆
  • 直播预告 | 降本增效持续深化,如何找准 FinOps 关键着力点?
  • 12月5日作业
  • 多线程--11--ConcurrentHashMap
  • 记一次若依二开的简单流程
  • mysql原理--InnoDB记录结构
  • vivado时序方法检查1
  • 【Effective C++】条款2:尽量以const,enum,inline替换#define
  • leetCode 90.子集 II + 回溯算法 + 图解 + 笔记
  • FFmpeg的C++封装:FFmpegWrapper
  • vue form表单的封装--使用的是elementUI
  • 如何设计自动化测试脚本
  • VAE模型及pytorch实现
  • centos7.5插件xtrabackup下载
  • 【数据结构】链表OJ题(顺序表)(C语言实现)
  • 硬件开发笔记(十四):RK3568底板电路LVDS模块、MIPI模块电路分析、LVDS硬件接口、MIPI硬件接口详解