2018.5.14(python)集合类型及操

数学概念:

集合(简称集)是数学中一个基本概念,它是集合论的研究对象,集合论的基本理论直到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)  #将集合转换成列表

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值