set 翻译为集合
collection 翻译为集合类型,是一个大概念
可变的、无序的、不重复的元素的集合

set定义 初始化
set() -> new empty set object
set(iterable) -> new set object

Python学习——set及操作、集合,相关运算

set的元素要求必须可以hash
目前学过的不可hash的类型有list、set**
元素不可以索引 无序
set可以迭代 集合类型的一般都可以迭代
**

add(elem) 增加一个元素到set中 如果元素存在,什么都不做
update(*others) 合并其他元素到set集合中来 参数others必须是可迭代对象 就地修改
remove(elem) 从set中移除一个元素 元素不存在,抛出KeyError异常。
discard(elem) 从set中移除一个元素 元素不存在,什么都不做
pop() -> item 移除并返回任意的元素。 空集返回KeyError异常 不需要给参数
clear() 移除所有元素

修改 要么删除,要么加入新的元素
查询 非线性结构,无法索引
遍历 可以迭代所有元素
成员运算符 in 和 not in 判断元素是否在set中

set不管规模怎样,遍历元素的时候 效率是一样的
list会随着规模增大而增大、

线性结构的查询时间复杂度是O(n),即随着数据规模的增大而增加耗时
set、dict等结构,内部使用hash值作为key,时间复杂度可以做到O(1),查询时间和数据规模无关

hash :
数值型int、float、complex
布尔型True、False
字符串string、bytes
tuple p None
以上都是不可变类型,成为可哈希类型,hashable

集合

基本概念 全集 所有元素的集合。例如实数集,所有实数组成的集合就是全集
子集subset和超集superset
一个集合A所有元素都在另一个集合B内,A是B的子集,B是A的超集
真子集和真超集
A是B的子集,且A不等于B,A就是B的真子集,B是A的真超集
并集:多个集合合并的结果
交集:多个集合的公共部分
差集:集合中除去和其他集合公共部

union(*others) 返回和多个集合合并后的新的集合
| 运算符重载 等同union
update(*others) 和多个集合合并,就地修改
|= 等同update

intersection(*others) 返回和多个集合的交集
& 等同intersection
intersection_update(*others) 获取和多个集合的交集,并就地修改
&= 等同intersection_update

difference(*others) 返回和多个集合的差集
'- 等同difference
difference_update(*others) 获取和多个集合的差集并就地修改
-= 等同difference_update

symmetric_differece(other) 返回和另一个集合的差集 (A-B)∪(B-A)
^ 等同symmetric_differece
symmetric_differece_update(other) 获取和另一个集合的差集并就地修改
^= 等同symmetric_differece_update

issubset(other)、<= 判断当前集合是否是另一个集合的子集
set1 < set2 判断set1是否是set2的真子集
issuperset(other)、>= 判断当前集合是否是other的超集
set1 > set2 判断set1是否是set的真超集
isdisjoint(other) 当前集合和另一个集合没有交集 ,没有交集,返回True

相关文章:

  • 2021-11-30
  • 2021-09-13
  • 2022-12-23
  • 2022-12-23
  • 2021-08-07
  • 2022-12-23
  • 2021-05-08
  • 2021-06-19
猜你喜欢
  • 2021-11-22
  • 2021-12-30
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-11-22
  • 2021-10-01
相关资源
相似解决方案