Python集合(set)

基本定义

定义: 集合(set),一种 无序不重复的元素序列,使用大括号{}或者set()生成;

s={1,2,3}	#集合
s1={}		#空字典
s2=set()	#空集合

因为集合和字典都是使用大括号来表示的,在创建空集合的时候如果使用s={},生成的对象类型是字典,所以在创建新的空集合对象时,使用set();

添加元素

方法: s.add(),s.update();

>>> s={'a','b'}
>>> s
{'a','b'}
>>> s.add("apple")				#add添加元素,直接把整体添加进去
>>> s
{'a','b','apple'}
>>> s.update("apple")			#update添加元素,把插入值作为可迭代对象进行遍历,依次添加到集合中
>>> s
{'a','p','e','l','b','apple'}
>>> 

add()方法添加的元素可以是任意数据类型,把添加元素作为一个整体添加到集合当中;
update()方法添加的元素必须是可迭代的对象,遍历可迭代的对象,然后把对象中的每一个元素添加到集合中;
集合中嵌套的对象必须是可hash的(),如元组、字符串等;
update()方法在添加列表、集合、字典对象时(不可hash),添加的对象只能有一层(如:[1,2,3]),如果有存在多层嵌套(如:[1,2,3,[1,2,3]]),会发生 “TypeError: unhashable type: ‘list’”
update
update()方法添加字典对象时,是把字典对象的key部分插入集合中;

移除元素

方法: s.pop(),s.remove(),s.discard(),s.clear();

>>> s={"apple","banana","orange","pear"}
>>> s
{'apple','banana','orange','pear'}
>>> s.pop()					#随机删除集合元素,空集合显示“KeyError”
'orange'
>>> s
{'banana','pear','apple'}
>>> s.remove('apple')		#删除指定集合元素,如果元素不存在,显示“KeyError”
>>> s
{'banana','pear'}
>>> s.discard('pear')		#删除指定集合元素,如果元素不存在,不进行操作
>>> s
{'banana'}
>>> s.clear()				#清空集合
>>> s
set()						#空集

pop()随机删除集合元素,当集合为空时pop()报错;
remove()删除指定集合元素,元素不存在时报错;
discard()删除指定集合元素,元素不存在时不进行操作;

成员判断

格式: x in s;

>>> s={'a','b','v'}
>>> 'a' in s
True
>>> 'n' not in  s
True

其他内置函数

方法描述
copy()浅复制
difference(s)返回在原集合中但不在集合s中的元素(差集)
difference_update(s)s.difference_update(s1)类似于s=s.difference(s1)
intersection(s)返回两个集合的交集
intersection_update(s)s.intersection(s1)类似于s=s.intersection(s1)
isdisjoint(s)如果两个集合没有交集,返回True,否则返回False
issubset(s)如果原集合是s的子集,返回True,否则返回False
issuperset(s)如果原集合是s的父集,返回True,否则返回False
union(s)返回两个几个的交集
symmetric_difference(s)返回两个集合的不重复的元素集合
symmetric_difference_update()移除当前集合中和另一个集合的共同元素,并且将另一个指定集合的不同元素插入到当前集合

其他操作符

交集&,并集|,对称差集^;

>>> s1={1,2,3,4,5}
>>> s2={3,4,5,6,7}
>>> s1&s2			## 交集		s1.intersection(s2)
{3,4,5}
>>> s1|s2			## 并集		s1.union(s2)
{1,2,3,4,5,6,7}
>> s1^s2			## 对称差集	s1.symmetric_update(s2)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值