sets 支持 x in set, len(set),和 for x in set。
作为一个无序的集合,sets不记录元素位置或者插入点。因此,sets不支持 indexing, slicing, 或其它类序列(sequence-like)的操作。
1-简单的小例子
>>> x = set('spam')
>>> y = set(['h','a','m'])
>>> x, y
(set(['a', 'p', 's', 'm']), set(['a', 'h', 'm']))
2-小应用
>>> x & y # 交集
set(['a', 'm'])
>>> x | y # 并集
set(['a', 'p', 's', 'h', 'm'])
>>> x - y # 差集
set(['p', 's'])
3-去除海量列表里重复元素
>>> a = [11,22,33,44,11,22]
>>> b = set(a)
>>> b
set([33, 11, 44, 22])
>>> c = [i for i in b]
>>> c
[33, 11, 44, 22]
4-集合用于包含一组无序的对象。要创建集合,可使用set()函数并像下面这样提供一系列的项:
s = set([3,5,9,10]) #创建一个数值集合
t = set("Hello") #创建一个唯一字符的集合
t
set(['H', 'e', 'l', 'o'])
与列表和元组不同,集合是无序的,也无法通过数字进行索引。此外,集合中的元素不能重复。例如,如果检查前面代码中t集合的值,结果会是:
注意只出现了一个'l'。
5-集合支持一系列标准操作,包括并集、交集、差集和对称差集,例如:
a = t | s # t 和 s的并集
b = t & s # t 和 s的交集
c = t – s # 求差集(项在t中,但不在s中)
d = t ^ s # 对称差集(项在t或s中,但不会同时出现在二者中)
6-基本操作:
t.add('x') # 添加一项
s.update([10,37,42]) # 在s中添加多项
t.remove('H') # 使用remove()可以删除一项
len(s) #返回set的长度
x is s # 测试x是否是s的成员
x not in s # 测试x是否不是s的成员
7-高级测试操作
s.issubset(t) # 测试是否 s 中的每一个元素都在 t 中
s <= t
s.issuperset(t) # 测试是否 t 中的每一个元素都在 s 中
s >= t