千家信息网

Python集合类型中set和frozenset是什么

发表于:2025-01-18 作者:千家信息网编辑
千家信息网最后更新 2025年01月18日,这篇文章将为大家详细讲解有关Python集合类型中set和frozenset是什么,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。集合类型-set, frozense
千家信息网最后更新 2025年01月18日Python集合类型中set和frozenset是什么

这篇文章将为大家详细讲解有关Python集合类型中set和frozenset是什么,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

集合类型-set, frozenset

set 对象是由具有唯一性的hashable 对象所组成的无序多项集。常见的用途包括成员检测、从序列中去除重复项以及数学中的集合类计算,例如交集、并集、差集与对称差集等等

两个类的构造器具有相同的作用方式:

  • class set([iterable ])

  • class frozenset([iterable ])

集合可用多种方式来创建:

  • 使用花括号内以逗号分隔元素的方式: {‘jack’, ‘sjoerd’}

  • 使用集合推导式: {c for c in ‘abracadabra’ if c not in ‘abc’}

  • 使用类型构造器: set(), set(‘foobar’), set([‘a’, ‘b’, ‘foo’])

set 和frozenset 的实例提供以下操作:

len(s)

计算集合 s 元素个数

x in s

检测x是否为s中的成员

x not in s

检测x 是否非s 中的成员

isdisjoint(other)

用于判断两个集合是否包含相同的元素,如果没有返回 True,否则返回 False

x = {"apple", "banana", "cherry"}y = {"google", "runoob", "facebook"}z = x.isdisjoint(y)print(z)
issubset(other)

用于判断集合的所有元素是否都包含在指定集合中,如果是则返回 True,否则返回 False

x = {"a", "b", "c"}y = {"f", "e", "d", "c", "b", "a"}z = x.issubset(y)
issuperset(other)

用于判断指定集合的所有元素是否都包含在原始的集合中,如果是则返回 True,否则返回 False。

x = {"f", "e", "d", "c", "b", "a"}y = {"a", "b", "c"}z = x.issuperset(y) print(z)

union(*others)

返回两个集合的并集,即包含了所有集合的元素,重复的元素只会出现一次

x = {"apple", "banana", "cherry"}y = {"google", "runoob", "apple"}z = x.union(y) print(z)
intersection(*others)

用于返回两个或更多集合中都包含的元素,即交集。

x = {"apple", "banana", "cherry"}y = {"google", "runoob", "apple"}z = x.intersection(y) print(z)
difference(*others)

用于返回集合的差集,即返回的集合元素包含在第一个集合中,但不包含在第二个集合(方法的参数)中。

x = {"apple", "banana", "cherry"}y = {"google", "microsoft", "apple"}z = x.difference(y) print(z)
symmetric_difference(other)

返回两个集合中不重复的元素集合,即会移除两个集合中都存在的元素。

x = {"apple", "banana", "cherry"}y = {"google", "runoob", "apple"}z = x.symmetric_difference(y) print(z)
copy()

用于拷贝一个集合。

sites = {"Google", "Runoob", "Taobao"}x = sites.copy()print(x)

可用于set 而不能用于不可变的frozenset 实例的操作:

update(*others)

用于修改当前集合,可以添加新的元素或集合到当前集合中,如果添加的元素在集合中已存在,则该元素只会出现一次,重复的会忽略。

x = {"apple", "banana", "cherry"}y = {"google", "runoob", "apple"}x.update(y) print(x)
intersection_update(*others)
  • intersection_update() 方法用于获取两个或更多集合中都重叠的元素,即计算交集。

  • intersection_update() 方法不同于 intersection() 方法,因为 intersection() 方法是返回一个新的集合,而 intersection_update() 方法是在原始的集合上移除不重叠的元素。

x = {"apple", "banana", "cherry"}  # y 集合不包含 banana 和 cherry,被移除 y = {"google", "runoob", "apple"}x.intersection_update(y) print(x)
difference_update(*others)
  • difference_update() 方法用于移除两个集合中都存在的元素。

  • difference_update() 方法与 difference() 方法的区别在于 difference() 方法返回一个移除相同元素的新集合,而 difference_update() 方法是直接在原来的集合中移除元素,没有返回值。

x = {"apple", "banana", "cherry"}y = {"google", "microsoft", "apple"}x.difference_update(y) print(x)
symmetric_difference_update(other)

symmetric_difference_update() 方法移除当前集合中在另外一个指定集合相同的元素,并将另外一个指定集合中不同的元素插入到当前集合中

x = {"apple", "banana", "cherry"}y = {"google", "runoob", "apple"}x.symmetric_difference_update(y) print(x)
add(elem)

用于给集合添加元素,如果添加的元素在集合中已存在,则不执行任何操作。

fruits = {"apple", "banana", "cherry"}fruits.add("orange") print(fruits)
remove(elem)

用于移除集合中的指定元素。

fruits = {"apple", "banana", "cherry"}fruits.remove("banana") print(fruits)
discard(elem)

如果元素elem 存在于集合中则将其移除

fruits = {"apple", "banana", "cherry"}fruits.discard("banana") print(fruits)
pop()

从集合中移除并返回任意一个元素。如果集合为空则会引发KeyError。

fruits = {"apple", "banana", "cherry"}fruits.pop() print(fruits)
clear()

用于移除集合中的所有元素。

fruits = {"apple", "banana", "cherry"}fruits.clear()print(fruits)
关系运算
s_1024 = {"佩奇","老男孩","海峰","马JJ","老村长","黑姑娘","Alex"}s_pornhub = {"Alex","Egon","Rain","马JJ","Nick","Jack"}print(s_1024 & s_pornhub)  # 交集, elements in both setprint(s_1024 | s_pornhub)  # 并集 or 合集print(s_1024 - s_pornhub)  # 差集 , only in 1024print(s_pornhub - s_1024)  # 差集,  only in pornhubprint(s_1024 ^ s_pornhub)  # 对称差集, 把脚踩2只船的人T出去

关于"Python集合类型中set和frozenset是什么"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

元素 方法 两个 差集 类型 相同 交集 更多 成员 方式 篇文章 检测 原始 对称 实例 对象 构造器 不同 不错 实用 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网女皇 金融科技 5g通信网络技术怎么样 genome是什么数据库 数据库中树状表的原理 网页输入数据保存不到数据库 网络安全检测与防护 软件开发一般要用什么笔记本 网络安全法宣贯汇报 实惠的联想ts250服务器 苏州软件开发哪家公司好 乡镇网络安全主题班会 过滤器是运行在服务器端的组件吗 pg数据库表名称长度限制 方舟生存进化服务器弹出对话框 什么政府部门有软件开发人员 网络安全类型选项 网络服务器繁忙 达梦数据库数据存储原理 学校网络安全工作体系建设 内蒙古学生网络技术服务哪个好 长沙易诚互动网络技术有限公司 惠普服务器按开机键没反应 云手机的服务器地址怎么填 上海戴尔服务器新报价 校园网络安全主题创意绘画 PS4 暗黑2 服务器 网络安全团课校训word 无线网络技术与开发 网络安全风险项判定 在神州邦邦找软件开发项目
0