数据容器集合set/frozenset

定义

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

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

特点

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

可变集合的定义

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

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

不可变集合的定义

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

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

定义集合

空集合

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

注意事项

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

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

底层机制

相关推荐
Pniubi几秒前
HashMap扩容全流程
java·开发语言·数据结构
by2099921 小时前
哈希表——快速找到数据:冲突、删除与扩容的实现
数据结构·c++·哈希算法·散列表
Code_Solitude21 小时前
c语言:关于qsoet函数知识点
c语言·数据结构·算法
Pniubi1 天前
快速排序(力扣基础)(递归)
java·数据结构·算法
inrichtt1 天前
第八课时:SPI总线揭秘:四线全双工通信的奥
c语言·数据结构·stm32·单片机·嵌入式硬件
HPtiger1 天前
数据结构——选择排序
数据结构·算法·排序算法
丑梨数据1 天前
信创环境里跑文档工具:格式兼容与本地合规的几个坑
数据结构·人工智能·算法·决策树·排序算法
烂蜻蜓1 天前
Pandas入门教程(四):Series数据结构——创建、索引与常用方法
数据结构·pandas
CS创新实验室2 天前
一棵树怎么做到“自平衡还不太费力“?——红黑树的旋转与染色
数据结构·算法·红黑树·408·计算机考研
Logic1012 天前
C语言/数据结构位运算题解:异或XOR找出被挑选一次的果子编号——只出现一次的数字
c语言·数据结构·算法·数组·位运算·时间复杂度·空间复杂度