>>>= {3, 4, 5}
>>> .(, )
{3}
也可以直接使用与运算符 & 来代替,完全等效:
交集 = 集合1 & 集合2 & 集合N
>>>&&
{3}
求并集
并集 = 集合1.union(集合2, 集合3, 集合N)
>>>= {1, 2, 3}
>>>= {2, 3, 4}
>>>= {3, 4, 5}
>>> .union(, )
{1, 2, 3, 4, 5}
也可以直接使用或运算符 | 来代替,完全等效:
并集 = 集合1 | 集合2 | 集合N
>>>||
{1, 2, 3, 4, 5}
求差集
差集 = 集合1.difference(集合2, 集合3, 集合N)
>>>= {1, 2, 3}
>>>= {2, 3, 4}
>>>= {3, 4, 5}
>>> .(, )
{1}
也可以直接使用运算符 - 来代替,完全等效:
差集 = 集合1 - 集合2 - 集合N
>>>--
{1}
判断是否为子集
布尔值 = 集合1.issubset(集合2)
判断 集合1 是否为 集合2 的子集 。
>>>= {2, 3}
>>>= {1, 2, 3}
>>> .()
True
>>>= {3, 4}
>>> .()
False
判断是否为超集
布尔值 = 集合1.issuperset(集合2)
判断 集合1 是否为 集合2 的子集 。
>>>= {1, 2, 3}
>>>= {2, 3}
>>> .()
True
>>>= {3, 4}
>>> .()
False
6、集合运算示例
集合运算在编程时有什么用呢?以差集为例举个例子 。
假如大学里有一个班,班里同学的花名册是「赵大,钱二,孙三,李四,周五,吴六,郑七,王八」 。有一天上课,老师要求同学们在一张白纸上签到,大家陆续写上了自己的名字,上面有「周五,李四,王八,赵大,钱二,冯九,陈十」 。哪些人缺席了呢?
要判断哪些人缺席了,通常的做法时,逐一从签到表上取出名字,然后去花名册上寻找并做标记,最终花名册上没被标记的名字便是缺席的 。有些麻烦,这可苦了助教了 。
我们可以用集合来快速解决这个问题 。将花名册上的名字保存在集合中,将签到表上的名字保存在另一个集合中,然后求一下差集 。如下:
>>> 花名册 = {‘赵大’, ‘钱二’, ‘孙三’, ‘李四’, ‘周五’, ‘吴六’, ‘郑七’, ‘王八’}
>>> 签到表 = {‘周五’, ‘李四’, ‘王八’, ‘赵大’, ‘钱二’, ‘冯九’, ‘陈十’}
>>> 花名册 - 签到表
{‘吴六’, ‘孙三’, ‘郑七’}
吴六,孙三,郑七没来!
我们用反过来用 签到表 - 花名册 看看:
>>> 签到表 - 花名册
{‘陈十’, ‘冯九’}
还有两个旁听生!
7、什么时候用集合
集合非常重要的一个特性是元素无重复,每个元素都是唯一的,重复的元素将被自动剔除(去重) 。
所以如果我们需要存放一系列的数据,并且不希望其中出现重复,那么就可以使用集合 。
另外如果想计算两个数据集的交集、并集、差集,使用集合来承载数据再合适不过了,集合自带的集合运算能轻松解决这些问题 。
8、获取字典和集合中的元素数量
我们可以通过 len() 函数来获取字典中的键值对数量和集合中的元素数量 。
>>> codes = {‘’: ‘010’, ‘’: ‘021’}
>>> len(codes)
2
>>>= {1, 2, 3, 4}
>>> len()
4
9、字典和集合大总结
字典是一种用来存放若干键值对的数据类型,可通过键来快速查找值 。
字典的键需要是不可变的类型,如数字,字符串和元组 。字典的值可以是任意类型 。字典本身是可变的,所以可向其中添加、修改、删除键值对 。
集合是一个用于存放批量元素的序列 。它不是有序的,且元素不会有重复 。集合也是可变的,我们可以向其中添加、删除、修改元素 。