数学概念:
集合(简称集)是数学中一个基本概念,它是集合论的研究对象,集合论的基本理论直到19世纪才被创立。最简单的说法,即是在最原始的集合论——朴素集合论中的定义,集合就是“确定的一堆东西”。集合里的“东西”,叫作元素。
由一个或多个确定的元素所构成的整体叫做集合。若x是集合A的元素,则记作x∈A。集合中的元素有三个特征:1.确定性(集合中的元素必须是确定的)。 2.互异性(集合中的元素互不相同)。例如:集合A={1,a},则a不能等于1)。 3.无序性(集合中的元素没有先后之分),如集合{3,4,5}和{3,5,4}算作同一个集合。************************************************************
定义:集合是多个元素的无序组合;集合类型与数学中的集合概念一直;集合元素之间无序,每个元素唯一,不存在相同元素;
集合类型不可变
集合用大括号{}表示,元素间用逗号分隔;建立集合类型用{}或set;建立空集合类型,必须使用set()
例: A={ "python", 123 , ("python",123) } #三个元素 用()的叫做元组
B=set(“pypy123”) #使用set()建立集合 即B集合中有五个元素 {‘1’,‘2’,‘3’,‘p’,‘y’}
集合间操作:
S|T 并 ; 返回一个新集合,包括在集合S和T中的所有元素
S-T 差 ; 返回一个新集合,返回包括在集合S但不在T中的操作
S&T 交 ; 返回一个新集合,包括同时在S和T中的元素
S^T 补 ; 返回一个新集合,包括集合S和T中的非相同元素
S<=T 或 S<T ; 返回True/Flase,判断S和T的子集关系
S>=T 或 S>T ; 返回True/Flase,判断S和T的包含关系
>>> a={"p","y",123}
>>> b=set("pypy123")
>>> a-b
{123}
>>> b-a
{'3', '2', '1'}
>>> a&b
{'y', 'p'}
>>> a|b
{'3', '1', '2', 'y', 'p', 123}
>>> a^b
{'3', '1', '2', 123}
4个增强操作符:
S|=T ; 更新集合S,包括在集合S和T中的所有元素
S-=T ; 更新集合S,包括在集合S但不在T中的元素
S&=T ; 更新集合S,包括同时在集合S和T中的元素
S^=T ; 更新集合S,包括集合S和T中的非相同元素
集合处理方法:
S.add(x) :如果X不在集合S中,将X增加到S
S.discard(x) :移除S中元素X,如果X不在集合S中,不报错
S.remove(x) :移除S中元素X,如果X不在集合S中,产生keyError异常
S.clear() :移除S中所有元素
S.pop() :随机返回(取出)S的一个元素,更新S,若S为空产生keyErro异常 / 把这个元素取出并返回给用户,同时删除这个元素
S.copy() :返回集合S的一个副本
len(S) :返回集合S的元素个数
X in S :判断S中元素x , x在集合S中,返回True,否则返回False
X not in S :判断S中元素x , x不在集合S中,返回True,否则返回False
set(x) :将其他类型变量x转变为集合类型
>>> A={"p","y",123}
>>> for item in A:
print(item,end=" ")
y 123 p
>>> A={"p","y",123}
>>> try:
while True:
print(A.pop(),end=" ")
except:
pass
y 123 p
/*************************应用场景************************************/
包含关系比较
>>> "p" in {"p","y",123}
True
>>> {"p","y"}>={"p","y",123}
False
数据去重:集合类型所有元素无重复
↓↓↓ 将一个有重复的列表变为无重复的列表
>>> ls=["p","y","p","y",123]
>>> s=set(ls) #利用集合无重复元素的特点
>>> s.copy()
{'y', 123, 'p'}
>>> lt=list(s) #将集合转换成列表