集合是一个无序不重复序列。
1. 集合创建
集合用大括号{}或set()创建。空集必须用set()来创建,而不能用{},因为{}用来创建空字典。
集合与字典都是用大括号{}包围,不同点在于,集合里面的元素并非成对,只是一个个独立值,而字典里是键值:值对,即:
>>>a={"key1":"value1","key2":"value2"} 字典
>>>b={value1,value2} 集合
2. 集合运算
其实与数学的集合运算一样,因为是无序的,因此集合的加减不是值与值的加减,只是集合里值得增减,例如:
>>>a=set('abcdefabc')
>>>b=set('abcd')
>>>a
{'a', 'b', 'c', 'd', 'e', 'f'} 后面重复的abc删掉了
>>>a-b
{'e', 'f'}
>>>a|b a与b并集
>>>a&b a与b交集
>>>a^b 不同时包含a和b的元素,a交b的补集
3. 集合操作
序号 | 操作 | 描述 |
---|---|---|
1 | s.add(x) | 增加元素x |
2 | s.remove(x) | 删除元素x,没有x则发生错误 |
3 | s.discard(x) | 删除元素x,没有x也不会发生错误 |
4 | s.pop() | 脚本模式随机删除一个元素,交互模式删除最后一个元素? |
5 | len(s) | 计算集合长度 |
6 | s.clear | 清空集合 |
7 | x in s | 判断x是否在s中 |
4. 集合方法
序号 | 方法 | 描述 |
---|---|---|
add() | 为集合添加元素 | |
clear() | 移除集合中的所有元素 | |
copy() | 拷贝一个集合 | |
difference() | 返回多个集合的差集 | |
difference_update() | 移除集合中的元素,该元素在指定的集合也存在。 | |
discard() | 删除集合中指定的元素 | |
intersection() | 返回集合的交集 | |
intersection_update() | 删除集合中的元素,该元素在指定的集合中不存在。 | |
isdisjoint() | 判断两个集合是否包含相同的元素,如果没有返回 True,否则返回 False。 | |
issubset() | 判断指定集合是否为该方法参数集合的子集。 | |
issuperset() | 判断该方法的参数集合是否为指定集合的子集 | |
pop() | 随机移除元素 | |
remove() | 移除指定元素 | |
symmetric_difference() | 返回两个集合中不重复的元素集合。 | |
symmetric_difference_update() | 移除当前集合中在另外一个指定集合相同的元素,并将另外一个指定集合中不同的元素插入到当前集合中。 | |
union() | 返回两个集合的并集 | |
update() | 给集合添加元素 |
参考:Python3 菜鸟教程