《Python集合set》由会员分享,可在线阅读,更多相关《Python集合set(17页珍藏版)》请在金锄头文库上搜索。
1、PythonPython集合集合setset 集合集合对象是一组无序排列的可哈希的值,集合成员可以作为字典的键。相比之下,列表对象是不可哈希的,所以下面的程序会出错。 集合集合可以分为两类:可变集合与不可变集合。可变集合(set)可添加和删除元素,是非可哈希的,不能用作字典的键,也不能做其他集合的元素。不可变集合(frozenset)与之相反。2集合操作符和关系符号集合有各种操作,各种操作符和关系符号如下表所示。 集合3集合的相关操作(1)集合的创建由于集合没有自己的语法格式,只能通过集合的工厂方法set()和frozenset()来创建。 集合(2)集合的访问由于集合本身是无序的,所以不能像
2、列表和元组那样,为集合创建索引或进行切片操作,只能循环遍历或使用in、not in来访问或判断集合元素。有关循环的内容将在下一章中作具体介绍。 集合(3)集合的更新Python内建了以下方法,可以实现集合的更新:s.add()s.update()s.remove()当然,只有可变集合才能更新,试图更新不可变集合将会出错。例如内建的del命令可以删除集合本身。 集合4集合类型操作符集合类型操作符有7类:(1)in ,not in(是否是集合的元素)(2)=,!=(集合等价与不等价)(3)子集、超集 集合(4)联合(|)联合(union)操作与集合的or操作其实是等价的,联合操作符还有一个与之等价
3、的方法union()。 集合(5)交集(&)与集合的and操作等价,交集符号&的等价方法是intersection()。 集合(6)差补(-)与之等价的方法是difference()。 集合(7)对称差分()对称差分是集合的xor(异或),取得的元素属于s1和s2,但不同时属于s1和s2,其等价的方法是symmetric_difference()。 集合5集合转换为字符串、元组6关于集合的内建函数、内建方法(1)len():返回集合元素的个数(2)set(), frozenset():创建集合(属工厂函数)(3)适用于所有集合的方法方法名称操作s.issubset(t)如果s是t的子集,则返回True,否则返回False。s.issuperset(t)如果s是t的超集,则返回True,否则返回False。s.union(t)返回一个新集合,该集合是s和t的并集。s.intersection(t)返回一个新集合,该集合是s和t的交集。s.difference(t)返回一个新集合,该集合是s的成员,但不是t的成员。s.symmetric_difference(t)返回一个新集合,该集合是s或t的成员,但不是s和t共有的成员。s.copy()返回一个新集合,它是集合s的浅复制。