集合是一种无序且元素唯一的容器。通过set函数或者使用字面值集与大括号的语法。
1 | print(set([1,2,2,3,4,5,9,6,2,2,3])) |
对于集合主要是数学上的集合操作,例如联合,交集,差集,对称差集。
所谓联合就是求并集使用union函数或者 | 运算符:
1 | a = {1,2,3,4,5,6} |
交集使用 intersection函数或者使用 & 运算符:
1 | c = a.intersection(b) |
集合的一些其他函数:
函数 | 替代操作符 | 含义 |
---|---|---|
s.add(val) | N/A | 将val添加到集合s中 |
s.clear() | N/A | 将集合清空,清空所有元素 |
s.remove(x) | N/A | 从集合s中移除x |
s.pop() | N/A | 移除元素,如果s为空,抛出keyEror |
s.copy() | N/A | 拷贝一个集合 |
s.disjoint() | N/A | 如果两个集合包含相同元素返回True |
s.union(s1) | s | s1 | s和s1的并集 |
s.update(s1) | s |= s1 | 将s的内容设置为s和s1的并集 |
s.intersection(s1) | s & s1 | 所有在s中并且在s1中的元素 |
s.interserction_update(s1) | s &= s1 | 将s的内容设置为在s中且在s1的元素 |
s.difference(s1) | s-s1 | 所有在s中不在s1中的元素 |
s.difference_update(s1) | s -= s1 | 将s的内容设置为在s中,不在s1中的元素 |
s.symmetric_difference(s1) | s^s1 | 在s,s1中但不同时在s,s1中的元素 |
s.symmertric_difference_update(s1) | s^=s1 | 将s的内容设置为在s,s1中但不同时在s,s1中 |
s.issubset(s1) | N/A | 如果s包含于s1返回True |
s,issuperset(s1) | N/A | 如果s 包含s1 返回True |
和字典的key类似,集合的元素必须是不可改变的,要想包含列表型的元素必须转换为元组。当集合中的内容完全一样时,两个集合才相等