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函数 获取一个对象哈希值
不同对象的值是相等的 哈希值相等
大部分不可变的对象都是可哈希的 可变的对象则是不可哈希的
集合以空间来换列表的时间