python set集合
python的set是一个无序不重复元素集,基本功能包括关系测试和消除重复元素. 集合对象还支持并、交、差、对称差等。
集合基本用法:
1.创建集合
>>> a = {'abc','bcd','123'} >>> print(type(a)) <type 'set'> >>> b = set(['abc','abc','123','123']) >>> print(type(b)) <type 'set'>
2.演示交集
>>> print (a&b) set(['123', 'abc']) ###可以使用intersection,返回一个新的 set 包含 a 和 b 中的公共元素 >>> a.intersection(b) set(['123', 'abc']) >>> c = a.intersection(b) >>> print c set(['123', 'abc'])
3.并集
>>> print (a|b) set(['bcd', '123', 'abc']) ###可以使用union,返回一个新的 set 包含 a 和 b 中的每一个元素 >>> a.union(b) set(['123', 'abc', 'bcd'])
4.差集
>>> print (a-b) set(['bcd']) ###可以使用difference,返回一个新的 set 包含 a 中有但是 b 中没有的元素 >>> a.difference(b) set(['bcd']) >>> c = a.difference(b) >>> print c set(['bcd'])
5.
5.对称差集
>>> print (a^b) set(['bcd']) ###可以使用symmetric_difference,返回一个新的 set 包含 a 和 b 中不重复的元素 >>> a set(['bcd', '123', 'abc']) >>> b set(['123', 'abc', 'iter']) >>> a.symmetric_difference(b) set(['bcd', 'iter'])
6.add 添加一个元素
>>> b.add('iter') >>> print b set(['123', 'abc', 'iter'])
7.update更新元素
>>> a.update(['www','qqq']) >>> print a set(['bcd', 'www', '123', 'qqq', 'abc'])
8.remove 删除一个元素,如果元素不存在返回异常
>>> a.remove('qqq') >>> print a set(['bcd', 'www', '123', 'abc']) >>> a.remove('gggg') Traceback (most recent call last): File "<stdin>", line 1, in <module> KeyError: 'gggg'
9.清除set
>>> a.clear() >>> a set([]) >>> print a set([])
另外网上看到一个图片很形象的演示set的功能