(一)set和frozenset类型
(1)set
set是一个无序集合,set中不允许有相同的元素。set无法保存元素的位置和插入的顺序。set不支持索引、切片操作。set 集合的内容可以通过add() 和 remove()方法进行修改。
>>> s = set(['Java', 'Python', 'Java', 'Java'])
>>> list(s)
['Python', 'Java']
>>> s[0]
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'set' object does not support indexing
>>> s[0: 2]
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'set' object is not subscriptable
(2)frozenset
frozenset集合中的内容一旦创建完成以后就不能修改。
(3)构造方法
- class set([iterable]):
- class frozenset([iterable]):
如果参数iterable没有提供,则创建一个空的集合。
(4)set和frozenset共同的操作方法
1.len(s):返回集合中元素的个数。
>>> s = set(['Java', 'Java', 'Python', 'Python'])
>>> len(s)
2
2.x in s和x not in s:判断x是否是集合x中的元素。
>>> s = set(['Java', 'Java', 'Python', 'Python'])
>>> 'Java' in s
True
>>> 'Python' in s
True
>>> 'PHP' in s
False
3.s.isdisjoint(other):当集合s中没有一个元素和集合other中的其中一个元素相同时返回True,即当集合s和other的交集为空集时返回True。
>>> s = set(['Java', 'Java', 'Python', 'Python'])
>>> s1 = set(['Java', 'C++'])
>>> s.isdisjoint(s1)
False
>>> s2 = (['C++', 'C#'])
>>> s.isdisjoint(s2)
True
>>> s3 = set()
>>> s.isdisjoint(s3)
True
4.s.issubset(other) 或 s <= other:判断集合s是否是集合other的子集。
>>> s = set(['Java', 'Java', 'Python', 'Pyt