集合

1、集合基本知识

集合是无序可变序列,同一个集合中的元素都是唯一的,不允许重复

>>> a = {1,2,'a'}		#直接赋值
>>> a
set(['a', 1, 2])
>>> a = {1,2,3}			
>>> a
set([1, 2, 3])
>>> 
>>> a= set(range(5))		#将range转化为集合
>>> a
set([0, 1, 2, 3, 4])
>>> a = set([1,2,2,1])      #将列表转化为集合
>>> a
set([1, 2])					#集合会自动去重,保证元素的唯一性
>>> 

注意:集合中只能包含数字、字符串、元组等不可变类型的数据(或者说是可哈希的数据),而不能包含列表、字典、集合等可变类型的数据,同时,集合的in操作效率比列表快很多,因为字典和列表都是通过哈希值来存储的

>>> a = {1,'a','-',[1,2,3]}					#集合中有列表元素会报错
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: unhashable type: 'list'
>>> 

2、集合元素的增加与删除

使用集合的add()方法可以为集合增加新的元素,使用update()方法可以合并另一个集合中的元素到当前集合中

>>> a = {1,2,3}
>>> a.add(4)
>>> a
set([1, 2, 3, 4])
>>> a.update({6,7,8})
>>> a
set([1, 2, 3, 4, 6, 7, 8])
>>> 

pop()方法用于随机删除并返回集合中的一个元素,如果集合为空则抛出异常;
remove()方法用于删除集合中的元素,如果指定元素不存在则抛出异常;
discard()方法用于从集合中删除一个特定元素,如果元素不存在则忽略该操作;
clear()方法用于清空集合中的所有元素

>>> a = {1,2,3,'A'}
>>> a.discard(4)					#删除元素,不存在则忽略
>>> a
set(['A', 1, 2, 3])
>>> a.remove(4)						#删除元素,不存在则抛出异常
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
KeyError: 4
>>> a.remove(3)						#删除元素
>>> a
set(['A', 1, 2])
>>> a.pop()							#随机删除并返回一个元素
'A'
>>> a
set([1, 2])
>>> 

3、集合的运算

集合支持交集、并集、差集等运算

>>> a_set = {1,2,3,4}
>>> b_set = {3,4,5,6}
>>> a_set|b_set					#并集
set([1, 2, 3, 4, 5, 6])
>>> a_set.union(b_set)			#并集
set([1, 2, 3, 4, 5, 6])
>>> a_set & b_set				#交集
set([3, 4])
>>> a_set.intersection(b_set)	#交集
set([3, 4])
>>> a_set - b_set				#差集
set([1, 2])
>>> a_set.difference(b_set)		#差集
set([1, 2])
>>> new_set = a_set|b_set
>>> new_set
set([1, 2, 3, 4, 5, 6])
>>> a_set.issubset(new_set)		#判断是否为子集关系
True
>>> 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值