数据容器集合set/frozenset

定义

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

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

特点

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

可变集合的定义

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

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

不可变集合的定义

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

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

定义集合

空集合

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

注意事项

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

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

底层机制

相关推荐
海清河晏11112 分钟前
数据结构 | 二叉搜索树
数据结构·c++·visual studio
Yang_jie_031 小时前
笔记:数据结构(顺序表)
数据结构·windows·笔记
一个初入编程的小白5 小时前
数据结构:栈
数据结构
我命由我123456 小时前
方差(实例实操、与标准差的区别)
java·数据结构·算法·数据分析·java-ee·intellij-idea·idea
努力努力再努力wz7 小时前
【高性能网络库与HTTP Server系列】:基于主从 Reactor 模型实现高性能 C++ 网络库与 HTTP Server
开发语言·网络·数据结构·数据库·c++·网络协议·http
什巳7 小时前
JAVA练习275-乘积最大子数组
java·开发语言·数据结构·算法
码完就睡8 小时前
数据结构——串的模式匹配算法(BF算法、KMP算法)
数据结构·算法
tachibana28 小时前
hot100 排序链表(148)
java·数据结构·算法·leetcode·链表
Tim_108 小时前
【C++】015、函数参数:值传递,指针传递,引用传递的区别
数据结构·c++·算法
Yang_jie_0310 小时前
笔记:数据结构(链表)
数据结构·笔记·链表