数据类型之集合
诶...... 今天好像没什么前言可以说。 那,就直接切入正题吧。
首先给出解释:多个元素的无序组合。
和数学中提到的集合概念一致,具有 无序、元素唯一、确定性(不可更改) 的性质。集合用 { } 表示,内部用逗号 ' , ' 分隔。内部元素不受数据类型限制,可混合使用。
创建时使用 { } 或者 set( ) 。但是,空集合必须使用 set( ) 创建,且创建时,重复的相同元素会被筛选掉,只保留一个存在于集合中。
既然是集合,那么相应的,就会存在集合之间的运算:交、并、补、差。 所表达的含义与方法,均与数学中概念相同。
- 交 返回一个新集合,A & B
- 并 返回一个新集合,A | B (注意是单竖线)
- 补 返回一个新集合,A ^ B
- 差 返回一个新集合,A - B
除去上面的四种运算,还可以判断子集和包含关系。
- 子集 A <= B 或 A < B 返回值为True / False
- 包含 A >= B 或 A > B 返回值为True / False
关于集合,最后介绍它的相关方法。
- A.add( x ) 将 x 加入集合 A 中
- A.discord( x ) 从集合 A 中移除 x 。若集合中无此元素,不报错
- A.remove( x ) 从集合 A 中移除 x 。若集合中无此元素,则抛出 KeyError 异常
- A.clear( ) 移除集合 A 中的所有元素
- A.pop( ) 随机抛出集合 A 中的一个元素,并更新集合 A 。就是说,弹出这个随机元素后,该集合中将不再有此元素
- A.copy( ) 返回集合 A 的一个副本。在赋值后与原集合互不干预
- len( A ) 返回集合 A 中元素的个数
- in / not in 判断成员资格,判断前者是否在后者中存在。 若存在,则返回 True;若不存在,则返回 False
- set( x ) 创建时使用。或将其它类型的 x 转换为集合类型