集合:
set=>{key1,key2,key3,key4}
什么是集合(set)
1.集合是一个无序的,不重复的数据组合
2.集合是一个只含有key的字典
集合的作用:
1.去重:把一个列表变成集合,就自动去重了
2.关系测试:测试两组数据之前的交集,差集,并集等关系
集合的定义:
1.集合通过花括号中,而各个元素用逗号隔开
2.集合元素必须是可hash对象,跟字典一样
3.set和dictate的唯一区别仅在于没有对应的value
>>> a = {1,2,3}
>>> type(a)
<class 'set'>
>>> a = set([1,2,3])
>>> a
{1, 2, 3}
>>> a = set({'x':1,'y':2})
>>> a
{'y', 'x'}
>>> a = [1,2,3,1,2,3]
>>> set(a)
{1, 2, 3}
>>>
集合的基本操作
1. 添加:
方法一:s.add(item)=>添加一项
方法二:s.update(someitems)=>添加多项
>>> s = {1,2,3}
>>> s.add(4)
>>> s
{1, 2, 3, 4}
>>> s.update("str")
>>> s
{1, 2, 3, 4, 't', 'r', 's'}
>>> s.update({"x":1,"y":2})
>>> s
{'y', 1, 2, 3, 4, 't', 'x', 'r', 's'}
>>>
2. 移除:
方法一:s.remove(item)=>移除一项(item不存在会出错KeyError)
方法二:s.discard(item)=>移除一项(item不存在则什么都不做)
>>> s
{'y', 1, 2, 3, 4, 't', 'x', 'r', 's'}
>>> s.remove('r')
>>> s
{'y', 1, 2, 3, 4, 't', 'x', 's'}
>>> s.remove('k')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
KeyError: 'k'
>>> s.discard('o')
>>> s
{'y', 1, 2, 3, 4, 't', 'x', 's'}
>>> s.discard('x')
>>> s
{'y', 1, 2, 3, 4, 't', 's'}
>>>
3.集合操作:
并集:t和s的并集,返回一个包含新的set包含s和t中的每一个元素
交集;t和s的交集,返回一个新的set包含s和t中的公共元素
差集:返回一个新的set包含s中有但是t中没有的元素
对称差集:返回一个新的set包含s和t中不重复的元素(在t或s中,但不会同时出现在二者中)
>>> s1 = {1,2,3}
>>> s2 = {2,3,4}
>>> s1 | s2
{1, 2, 3, 4}
>>> s1.union(s2)
{1, 2, 3, 4}
>>> s1 & s2
{2, 3}
>>> s1.intersection(s2)
{2, 3}
>>> s1 - s2
{1}
>>> s1.difference(s2)
{1}
>>> s1 ^ s2
{1, 4}
>>> s1.symmetric_difference(s2)
{1, 4}
>>>