一,集合
1.集合一组无序排列的可哈希的值;
2.支持集合关系测试,例如:in、not in、迭代等;
例如:
In [35]: s1=set(1,2,3)
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
in ()
----> 1 s1=set(1,2,3)
TypeError: set expected at most 1 arguments, got 3
In [36]: s1=set([1,2,3])
In [37]: s1
Out[37]: {1, 2, 3}
In [38]: type(s1)
Out[38]: set
3.不支持索引、元素获取和切片;
4.集合的类型:set()、frozenset()
5.集合没有特定语法格式,只能通过工厂函数创建;
二,集合类型的方法和操作
项目
描述
len(s)
返回s中项目数
s.copy()
制作s的一份副本
s.difference(t)
求差集。返回所有在s中,但不在t中的项目
s.intersection(t)
求交集。返回所有同时在s和t中的项目
s.isdisjoint(t)
如果s和t没有相同项,则返回True
s.issubset(t)
如果s是t的一个子集,则返回True
s.issuperset(t)
如果s是t的一个超级,则返回True
s.symmetric_difference(t)
求对称差集。返回所有在s或t中,但又不同时在这两个集合中的项
s.union(t)
求并集。返回所有在s或t中的项
操作
描述
操作
描述
s | t
s和t的并集
len(s)
集合中项数
s & t
s和t的交集
max(s)
最大值
s - t
求差集
min(s)
最小值
s ^ t
求对称差集
例如:
In [40]: set. //set方法
set.add set.intersection set.pop
set.clear set.intersection_update set.remove
set.copy set.isdisjoint set.symmetric_difference
set.difference set.issubset set.symmetric_difference_update
set.difference_update set.issuperset set.union
set.discard set.mro set.update
In [41]: s2 = set([2,3,4]) //并集
In [42]: s1 & s2
Out[42]: {2, 3}
In [43]: s1.symmetric_difference
s1.symmetric_difference s1.symmetric_difference_update
In [43]: s1.symmetric_difference(s2) //对称差集
Out[43]: {1, 4}
In [44]: s3 = set('xyz') //迭代
In [45]: s3
Out[45]: {'x', 'y', 'z'}
In [46]: s3.pop() //删除或弹出元素
Out[46]: 'y'
In [47]: s3.pop()
Out[47]: 'x'
In [48]: s3.pop()
Out[48]: 'z'
In [49]: s3.pop()
---------------------------------------------------------------------------
KeyError Traceback (most recent call last)
in ()
----> 1 s3.pop()
KeyError: 'pop from an empty set'
In [56]: s3 = set('xyz') //支持异构
In [57]: id(s1)
Out[57]: 19454768
In [59]: print s1,s3
set([1, 2, 3]) set(['y', 'x', 'z'])
In [60]: s1.update(s3)
In [61]: id(s1)
Out[61]: 19454768
In [62]: id(s3)
Out[62]: 21995832
In [63]: print s1
set([1, 2, 3, 'y', 'x', 'z'])
In [64]: print s3
set(['y', 'x', 'z'])
In [65]: s1.add(7) //添加元素
In [66]: print s1
set([1, 2, 3, 7, 'y', 'x', 'z'])
In [67]: s1.add('Jerry')
In [68]: print s1
set([1, 2, 3, 7, 'y', 'x', 'z', 'Jerry'])