集合类型的值有两种创建方式:一种是用一对花括号将多个用逗号分隔的数据括起来; 另一种是调用函数 set(),此函数可以将字符串、列表、元组等类型的数据转换成集合类型的 数据。不管用哪种方式创建集合值,在 Python 内部都是以 set([…])的形式表示的。注意,空 集只能用 set()来创建,而不能用字面值{}表示,因为 Python 将{}用于表示空字典(见 6.3.2 节)。
下面的会话过程演示了集合类型的值的创建。注意,集合中是不能有相同元素的,因此Python 在创建集合值的时候会自动删除掉重复的数据。
图 6.6 集合运算
下面是集合运算的例子:
和序列一样,集合与 for 循环语句结合使用,可实现对集合中每个元素的遍历。例如, 接着上面的例子继续执行语句:
Python 以面向对象方式实现集合类型,集合对象的方法如表 6.7 所示。
方法 | 含义 |
---|---|
s1.union(s2) | 即 s1 | s2 |
s1.intersection(s2) | 即 s1 & s2 |
s1.difference(s2) | 即 s1 – s2 |
s1.symmetric_difference(s2) | 即 s1 ^ s2 |
s1.issubset(s2) | 即 s1 <= s2 |
s1.issuperset(s2) | 即 s1 >= s2 |
s1.update(s2) | s1 |= s2 |
s.add(x) | 向 s 中增加元素 x |
s.remove(x) | 从 s 中删除元素 x(无 x 则出错) |
s.discard(x) | 从 s 中删除元素 x(无 x 也不出错) |
s.pop() | 从 s 中删除并返回任一元素 |
s.clear() | 从 s 中删除所有元素 |
s.copy() | 复制 s |
表 6.7 集合对象的方法
接着前面的例子,下面通过集合对象方法的调用来处理集合数据: