文章目录

  • Python frozenset集合

Python frozenset集合

set 集合是可变序列,程序可以改变序列中的元素;frozenset 集合是不可变序列,程序不能改变序列中的元素。set 集合中所有能改变集合本身的方法,比如 remove()、discard()、add() 等,frozenset 都不支持;set 集合中不改变集合本身的方法,fronzenset 都支持。

我们可以在交互式编程环境中输入dir(frozenset)来查看 frozenset 集合支持的方法:

>>> dir(frozenset)
['copy', 'difference', 'intersection', 'isdisjoint', 'issubset', 'issuperset', 'symmetric_difference', 'union']

frozenset 集合的这些方法和 set 集合中同名方法的功能是一样的。

两种情况下可以使用 fronzenset:

  1. 当集合的元素不需要改变时,我们可以使用 fronzenset 替代 set,这样更加安全。
  2. 有时候程序要求必须是不可变对象,这个时候也要使用 fronzenset 替代 set。比如,字典(dict)的键(key)就要求是不可变对象。

下面程序演示了 frozenset 的用法:

s = {'Python', 'C', 'C++'}
fs = frozenset(['Java', 'Shell'])
s_sub = {'PHP', 'C#'}
#向set集合中添加frozenset
s.add(fs)
print('s =', s)
#向为set集合添加子set集合
s.add(s_sub)
print('s =', s)

运行结果:

s = {'Python', frozenset({'Java', 'Shell'}), 'C', 'C++'}
Traceback (most recent call last):File "C:\Users\mozhiyan\Desktop\demo.py", line 11, in <module>s.add(s_sub)
TypeError: unhashable type: 'set'

需要注意的是,set 集合本身的元素必须是不可变的, 所以 set 的元素不能是 set,只能是 frozenset。第 6 行代码向 set 中添加 frozenset 是没问题的,因为 frozenset 是不可变的;但是,第 10 行代码中尝试向 set 中添加子 set,这是不允许的,因为 set 是可变的。

Python frozenset集合相关推荐

  1. Python frozenset 集合 - Python零基础入门教程

    目录 一.Python frozenset 集合语法 二.Python frozenset 集合使用 三.猜你喜欢 零基础 Python 学习路线推荐 : Python 学习目录 >> P ...

  2. Python frozenset集合(set集合的不可变版本)

    Python frozenset集合(set集合的不可变版本) set 集合是可变序列,程序可以改变序列中的元素:frozenset 集合是不可变序列,程序不能改变序列中的元素.set 集合中所有能改 ...

  3. 4.20 Python frozenset集合(set集合的不可变版本)

    set 集合是可变序列,程序可以改变序列中的元素:frozenset 集合是不可变序列,程序不能改变序列中的元素.set 集合中所有能改变集合本身的方法,比如 remove().discard().a ...

  4. [转载] python set 集合详解

    参考链接: Python集合set| pop函数 Python 中的集合,和数学中的集合概念一样,用来保存不重复的元素,即集合中的元素都是唯一的,互不相同.从形式上看,和字典类似,Python 集合会 ...

  5. python:集合类型 --- set, frozenset

    python:集合类型 --- set, frozenset set 对象是由具有唯一性的 hashable 对象所组成的无序多项集. 常见的用途包括成员检测.从序列中去除重复项以及数学中的集合类计算 ...

  6. [Python] Python数据类型(三)集合类型之set集合和frozenset集合

    1.集合基本概念 集合是0-n个对象引用的无序组合,集合中存储的元素不可重复,因此这些对象引用的引用的对象必须是可哈希运算的 . 1.python中提供了两种内置的集合类型:可变的set类型和固定的f ...

  7. python中的集合set类型是可变的吗_[Python] Python数据类型(三)集合类型之set集合和frozenset集合...

    1.集合基本概念 集合是0-n个对象引用的无序组合,集合中存储的元素不可重复,因此这些对象引用的引用的对象必须是可哈希运算的 .  1.python中提供了两种内置的集合类型:可变的set类型和固定的 ...

  8. python可变集合和不可变集合_不可变集合frozenset

    * 作者:煮酒品茶 tea * 博客:http://www.zwhset.com http://cwtea.blog.51cto.com * 目前在京峰教育担任python讲师 # 0.不可变集合fr ...

  9. Python 3 集合基础和概念!

    Python 3 集合基础和概念! Python 3中,集合是无序的,所以不能进行切片和索引操作. 创建集合有两个方法:set()方法创建的集合是可变的,可被迭代的:frozenset()方法创建的集 ...

最新文章

  1. 周志华:“深”为什么重要,以及还有什么深的网络
  2. TCP网络编程中connect()、listen()和accept()三者之间的关系
  3. html5该怎么样学习?零基础入门HTML5学习路线
  4. WPF 分页控件添加路由事件
  5. IntelliJ IDEA快捷键(Shortcut)官方文档地址
  6. PHP header函数大全
  7. 698A. Vacations
  8. appium python 抓包_Python学习教程:另辟蹊径,appium抓取app应用数据了解一下
  9. hive中统计某列数组的元素个数
  10. idea上安卓 Android SDK的安装
  11. 实验吧—Web——WP之 Forms
  12. The program ‘roscore‘ is currently not installed 解决办法
  13. 魔兽世界服务器卡顿原理,魔兽世界9.0卡顿解决办法
  14. 用户调研的操作步骤与过程模板
  15. 重庆钢铁泛微oa系统服务器更新时间,泛微全新OA系统-协同办公系统
  16. php时间戳转换为天数,js时间戳转换为日期和天数转换为时间戳
  17. 异数OS国产CPU平台移植项目需求分析
  18. week15-字符串
  19. python不知道吃什么_一个人不知道吃什么?找出我做的一个人的食物
  20. 可能是讲分布式系统最到位的一篇文章

热门文章

  1. 分布式.RPC-WebService CXF框架
  2. 中国冷鲜鸡肉行业竞争战略及企业核心竞争力提升策略分析报告2022-2028年版
  3. 纯 CSS 制作赛博朋克 2077 “故障风”按钮
  4. Android如何跳转至目标Activity后按返回键不返回前一个Activity
  5. Android中查看详细的错误信息的方法
  6. 合理放球(递推之第二类斯特林数 C++)
  7. flake8 错误修复指南
  8. 创造与魔法282服务器哪天维护,创造与魔法5月28日更新公告 5月28日更新内容[多图]...
  9. java计算机毕业设计专业课程教学计划进程管理系统源程序+mysql+系统+lw文档+远程调试
  10. ArcGIS engine中Display类库 (局部刷新)