自学Python-07 基本数据类型(六、集合Set)

自学Python-07 基本数据类型(六、集合Set)

 

 

定义

由不重复且不可变对象组成的无序且有限的集合。因此它们不能通过下标来索引。但是它们可被迭代,也可用内置函数 len() 返回集合中的条目数。集合常见的用处是快速成员检测,去除序列中的重复项,以及进行交、并、差和对称差等数学运算。

对于集合元素所采用的不可变规则与字典的键相同。注意数字类型遵循正常的数字比较规则: 如果两个数字相等 (例如 1 和 1.0),则同一集合中只能包含其中一个。

总结几点特征:

  • 集合是无序的
  • 集合是可变的
  • 集合内元素是确定的(不可变的)
  • 集合内元素是唯一的(不重复的)

基本操作

创建集合

使用{},注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典

自学Python-07 基本数据类型(六、集合Set)

 

使用set()函数

 

自学Python-07 基本数据类型(六、集合Set)

 

根据定义,集合内元素是唯一的、不重复的,所以可以自动去重

 

自学Python-07 基本数据类型(六、集合Set)

 

集合间运算

自学Python-07 基本数据类型(六、集合Set)

 

 

添加元素

add(x)方法,添加元素。无返回值。如果元素已存在,则不进行任何操作,因为集合元素是不重复的

 

自学Python-07 基本数据类型(六、集合Set)

 

update(x)方法,可理解为是批量添加。无返回值。参数是单个元素或者集合,依然遵循元素不重复的原则

 

自学Python-07 基本数据类型(六、集合Set)

 

 

移除元素

remove(x)方法,移除x元素,返回被移除的x元素。有返回值。当要移除的元素x不存在时,会报错。

 

自学Python-07 基本数据类型(六、集合Set)

 

discard(x)方法,移除x元素,作用同remove方法,但无返回值。区别是当要移除元素x不存在时,不会报错。

 

自学Python-07 基本数据类型(六、集合Set)

 

 

清空集合

clear()方法,清空集合内所有元素。无返回值。

 

自学Python-07 基本数据类型(六、集合Set)

 

 

方法

copy()

拷贝集合并返回拷贝的集合。有返回值。

关于浅拷贝,参考上节字典的copy()方法中所提

自学Python-07 基本数据类型(六、集合Set)

 

difference(set)

返回集合的差集,有返回值。例如a.difference(b),返回的是去除相同元素的新集合

 

自学Python-07 基本数据类型(六、集合Set)

 

difference_update(set)

移除两个集合中都存在的元素,无返回值。例如a.difference_update(b),即在a中移除两个集合中都存在的元素,与difference不同的是,该方法直接修改a

intersection(set1,set2,....)

用于返回两个或更多集合中都包含的元素,即交集。有返回值。

 

自学Python-07 基本数据类型(六、集合Set)

 

intersection_update() 

用于获取两个或更多集合中都重叠的元素,即计算交集。无返回值。

不同于 intersection() 方法,因为 intersection() 方法是返回一个新的集合,而 intersection_update() 方法是在原始的集合上移除不重叠的元素。

 

自学Python-07 基本数据类型(六、集合Set)

 

isdisjoint() 

用于判断两个集合是否包含相同的元素,如果没有返回 True,否则返回 False。

如图,判断y中是否包含x的元素

自学Python-07 基本数据类型(六、集合Set)

 

issubset()

用于判断集合的所有元素是否都包含在指定集合中,如果是则返回 True,否则返回 False。

 

如图,判断y中是否包含x

自学Python-07 基本数据类型(六、集合Set)

 

issuperset()

用于判断指定集合的所有元素是否都包含在原始的集合中,如果是则返回 True,否则返回 False。

如图,判断x中是否包含y

和issubset()好像差不多,只是包含关系不一样

自学Python-07 基本数据类型(六、集合Set)

 

symmetric_difference()

返回两个集合中不重复的元素集合,即会移除两个集合中都存在的元素。有返回值

 

自学Python-07 基本数据类型(六、集合Set)

 

symmetric_difference_update()

移除当前集合中在另外一个指定集合相同的元素,并将另外一个指定集合中不同的元素插入到当前集合中。无返回值。

 

自学Python-07 基本数据类型(六、集合Set)

 

union() 

返回两个集合的并集,即包含了所有集合的元素,重复的元素只会出现一次。有返回值

 

自学Python-07 基本数据类型(六、集合Set)