集合
集合类型定义
(多个元素的无序集合)
- 集合中的元素之间无序
- 集合中的元素都是唯一的不存在相同元素
- 集合元素不可更改
建立集合:
- 用{}表示
- 元素间用逗号隔开
- 建立集合用{}/set()
- 建立空集合用set()
>>> a ={"python",123,("python,123")}
>>> a
{'python,123', 123, 'python'}
>>> b = set("python 123")
>>> b
{' ', '2', '3', '1', 'y', 'o', 'n', 't', 'p', 'h'}
>>> c = {"python",123,123,"i love u"}
>>> c
{123, 'i love u', 'python'}
集合操作符
集合间的操作符
- s<=t/s<t(判断s和t的子集关系):返回True/False
- s>=t/s>t(判断s和t的包含关系):返回True/False
增强操作符:更新集合(修改原有的集合)
>>> a = {"p","y",123}
>>> b = {"pypy123"}
>>> a&b
set()
>>> a = {"p","y",123}
>>> b = set("pypy123")
>>> a-b
{123}
>>> a&b
{'y', 'p'}
>>> a^b
{'2', '1', '3', 123}
>>> a|b
{'2', '3', 'y', '1', 123, 'p'}
集合的处理方法
>>> a = {"p","y",123}
>>> for i in a:
print(i,end=" ")
y 123 p
>>> a.pop()
'y'
>>> a.pop()
123
>>> a.pop()
'p'
>>> a.pop()
Traceback (most recent call last):
File "<pyshell#35>", line 1, in <module>
a.pop()
KeyError: 'pop from an empty set'
集合类型应用场景
- 包含关系的比较
- 数据去重:(重要)
>>> ls = ['p','p','y','y',123]
>>> s=set(ls)
>>> s
{'y', 123, 'p'}
>>> lt=list(s)
>>> lt
['y', 123, 'p']