集合类型:Set

Published: 29 Dec 2013 Category: 编程

集合对象是一组无序排列可哈希的值。

集合有两种类型:可变集合(set)和不可变集合(frozenset)。可变集合不是可哈希的,因此既不可以添加、删除元素,也不可以作为字典的键或者其他集合的元素。而不可变集合有哈希值,可以作为字典的键或者另一个集合的一个成员。

基本操作

集合与列表[]、字典{}不同,没有特别的语法创建格式,只可以使用工厂方法创建:set()frozenset().

>>>s=set('set')
>>>s
set(['s','e','t'])
#访问集合中的值
>>>'s' in s
True
>>> for i in s:
    print i
#更新集合
>>>s.add('z')#添加
>>>s.update('update')#更新,将元素存入
>>>s.remove('s')#删除

集合类型操作符

成员关系:in , not in

等价不等价

两个集合相等是指当且仅当其中一个集合中的每个成员都是另一个集合的成员。 等价关系和成员顺序无关,只与集合元素有关。

子集/超集

<,<=判断子集,>,>=判断超集

集合操作

联合:|,交集:&,差补:-,异或:^ 如:s|t,若左边的集合s是可变的,而右边的t是不可变集合,则结果为可变集合。

若左右操作数顺序相反,则结果为不可变集合。

同样,可变集合可以使用|=,&=,-=,^=操作符,对可变集合进行操作

集合类型内建方法

集合类型有一些内建方法,和操作符机会是等价的。最重要的区别是:操作符两边的操作数必须是集合,而内建方法的适用对象可以是迭代类型。