数据容器集合set/frozenset

定义

可变集合(set):创建之后可以增删元素。

不可变集合(frozenset):创建之后不可以增删元素。

特点

内部元素无序(不保证顺序),不能通过下标访问元素。并且会自动去除重复元素。

可变集合的定义

集合中同时出现1和True,也是重复元素,python中bool值是int类型的子类型,用1表示True,用0表示False。

**并且每次打印的结果可能都是不一样的,这和Python底层保存的机制有关。**可能每次打印保存全部是数字的顺序每次都是一样的,但是换一个Python解释器,就可能和现在不一样了。

不可变集合的定义

实际就是将一个可变集合,强制装换为一个不可变集合。

frozenset函数接收的参数,可以是任意的可迭代对象,但是最终返回的一定是【不可变集合】。

定义集合

空集合

不可变集合的空集合很少用,因为不可变,后续也不能加元素。

注意事项

集合中只能放不可变的东西。

原因:因为集合底层是使用哈希表实现的,会通过元素计算哈希值,哈希值是不可变的。如果是集合的元素是可变的,那哈希值就会变化,就无法通过原理的哈希值找到元素了。

底层机制

相关推荐
wabs66639 分钟前
关于二叉树【429.N叉树的层序遍历的思考】
数据结构·c++·算法·leetcode·二叉树
C++ 老炮儿的技术栈1 小时前
MFC CPtrArray的用法
开发语言·数据结构·c++·算法·mfc·c
不会就选b1 小时前
算法日常・每日刷题--<贪心>6
数据结构·算法·leetcode
青山木2 小时前
Hot 100 --- 跳跃游戏 II
java·数据结构·算法·leetcode·贪心算法
神明不懂浪漫3 小时前
【第四章】索引——B+树、回表,加快数据库的查找能力的利器
开发语言·数据结构·数据库·经验分享·笔记·b树
LuminousCPP4 小时前
数据结构 - 排序(二):快速排序从错误初版到优化版|双指针划分 + 三数取中 + 小区间插入优化
c语言·数据结构·笔记·算法·排序算法
hansang_IR4 小时前
【题解】P9753 [CSP-S 2023] 消消乐
数据结构·c++·算法
shehuiyuelaiyuehao4 小时前
算法40,模拟运算,替换所有的问号
数据结构·算法·leetcode
YSL0701244 小时前
OpenCode保姆级安装教程
数据结构
晴天的雨.9925 小时前
[C++算法]快乐数
数据结构·c++·算法