2023-07-11

40集合

字典与集合的关系

跟字典一样,集合最大的特性:唯一性 集合中所有元素都应该是独一无二的、无序的


创建一个集合的三种方法:

1花括号里传入多个元素

2集合推导式:体现了集合的无序 随机性

3使用类型构造器也就是set  与法二得到的结果一样?虽无序 但是使用一次后就固定?


集合是无序的,所以不能使用下标索引的方式来对它进行访问

可以用(not) in

访问集合中的元素 可以用迭代的方式


实现去重操作,使用集合会一下得到去重后的结果 用于检测列表中是否存在相同的元素

通过迭代统计每个元素出现的次数从而来判断是否是唯一的

集合则可以直接用len来判断


内置方法:适用于任何可迭代对象

Copy浅拷贝

Isdisjoint判断是否不相关

Issubset是否为元素的子集

issuperset检测是否为超集

也可以使用大于等于小于


以下三集支持多参数

并集(管道符|):把两个元素并在一起  union

intersection(&

差集:difference


实操如下


41仅适用于set中的方法(会对集合中的内容进行改动

集合分为可变和不可变两种对象 前者是set 后者是frozenset

上节课的方法都不会修改集合里面的内容 所以两种对象都适用


(union)Update方法将使用others(说明支持多个)参数指定的值来更新集合


删除:

对于不存在的元素Remove会报错discard静默处理

Pop随机弹出数据 虽然跟保存的顺序一样 但因为存储的顺序是随机的 所以弹出随机

Clear变成空集合


字典的键、集合的元素必须是可哈希的 才能正确创建集合和字典

所以 实现一个嵌套的集合 集合里面要包含另一个集合 不可行 要用frozenset

一个对象是可哈希的 其哈希值必须在其整个程序的生命周期中保持不变

Hash函数 获取一个对象哈希值

不同对象的值是相等的 哈希值相等


大部分不可变的对象都是可哈希的 可变的对象则是不可哈希的


集合以空间来换列表的时间


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容