引题
集合是一些元素组成的整体,比如说阿里巴巴所有的员工组成了一个名为阿里巴巴的集合。
元素:组成集合的个体叫做元素。这个集合就是阿里巴巴,每一个员工就是元素。
属于:一个元素在一个集合里面,称为属于,符号为∈,比如 马云∈阿里巴巴的集合。
习惯上用大写字母表示集合,小写字母表示元素。阿里巴巴集合记作A,每一个员工记作a, b, c, d。a ∈ A(a属于A)。比如我不属于阿里巴巴,用e来表示我,那么e ∉ A(e不属于A)。
创建
- 创建空集合
set1 = set()
- 创建一个非空集合
大括号“{ }”扩住,里面的每一个元素不是键值对,跟列表类似。
set2 = {'a', 'b', 'c', 'd'}
添加
集合的特性:无序性。(偶尔也会出现排列整齐的情况,随机。)
set3 = {'a', 'b', 'c'}
set3.add('d')
print(set3)
>>> {'a', 'b', 'd', 'c'}
删除
- remove() 根据元素值来删除
set4 = {'a', 'b', 'c', 'd'}
set4.remove('a')
print(set4)
>>> {'b', 'c', 'd'}
- pop() 随机删除集合中的某一项并返回。如果集合为空会报错。
set5 = {'a', 'b', 'c', 'd'}
set5.pop()
print(set5)
>>> {'b', 'c', 'd'}
- clear() 清空集合中所有元素
set6 = {'a', 'b', 'c', 'd', 'e'}
set6.clear()
print(set6)
>>> set()
列表和集合对比
- 列表是有序的,集合是无序的。
list1 = [1,2,3,4,5]
set7= set('12345')
print(list1)
print(set7)
>>> [1,2,3,4,5]
>>> {'3', '4', '1', '2', '5'}
- 列表可以有重复元素,集合中不能有重复元素。
list2 = [1,2,3,4,5,5,4]
set8 = set('abcdeab')
print(list2)
print(set8)
>>> [1,2,3,4,5,5,4]
>>> {'a', 'd', 'c', 'e', 'b'}
集合的合集,并集,交集
注意:集合运算用的是自己的一套运算符号,不能用and或者or之类的比较条件的符号。
并集表示一个元素可能属于集合A也可能B。
交集表示一个元素既属于集合A又属于集合B。
- 并集 程序符号是“|”,数学标记符号是∪。
set9 = {1,2,3,4}
set10 = {3,4,5,6}
set00 = set9 | set10
print(set00)
>>> {1, 2, 3, 4, 5, 6}
- 交集 程序符号是“&”,数学标记符号是∩。
set9 = {1,2,3,4}
set10 = {3,4,5,6}
set00 = set9 & set10
print(set00)
>>> {3,4}
- 差集
set9 - set10 得到的差集就相当于set10的补集。
set9 = {1,2,3,4}
set10 = {3,4,5,6}
set00 = set9 - set10
print(set00)
>>> {1, 2}
set10 - set9 得到的差集就相当于set9的补集
set9 = {1,2,3,4}
set10 = {3,4,5,6}
set00 = set10 - set9
print(set00)
>>> {5, 6}
-
子集
集合B中的每一个元素都属于集合A,A包含B,B是A的子集。 -
补集
元素在A中,属于A,但不属于B,这叫做集合B的补集。
图示
A与B的并集:D+C+E
A与B的交集:C
A的差集(A-B):D
B的差集(B-A):E
A的补集:E
B的补集:D
A的子集:D,C
B的子集:C,E