python获取set中某些元素_取集合中元素_Python Set集合

Set集合

阅读本文需要3分钟

2019.09.05

集合(set)是一个无序不重复元素的序列。基本功能是进行成员关系测试和删除重复元素。可以使用大括号 { } 或者 set() 函数创建集合,注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典。

# 集合的定义set1 = set()  #定义一个空的集合set2 = {1,2,3}# 增加一个元素set1.add(5)#增加多个:set1.update([5,6,7,8])#删除某个值set1.remove(1)#查:无法通过下标索引#改:不可变类型无法修改元素a={10,20,30}b={20,50}print(a - b)     # a和b的差集{10,30}print(a | b)     # a和b的并集{10, 20, 30, 50}print(a & b)     # a和b的交集{20}print(a ^ b)     # a和b中不同时存在的元素 {50, 10, 30}

集合的遍历:

1.普通序列的遍历    for 变量 in 集合:        使用变量2.多级集合    集合 = {(值,值..),(值,值..)。。。}    for 变量1,变量2 in 集合:        使用变量1和变量2

集合的序列函数:

len() 计算集合的长度max() 获取集合中的最大值min() 获取集合中的最小值set() 创建空集合或者将其他数据转换为集合

集合中的方法:

add -- 增加集合元素

name = {'d', 's'}name.add('d')name返回结果:{'d', 's'}name.add('sd')name返回结果:{'sd', 'd', 's'}

update--更新已有集合

name = {'sd', 'd', 's'}name.update('df')name返回结果:{'sd', 'd', 'f', 's'}

remove--移除指定集合元素

name = {'sd','d','s'}name.remove('s')返回结果:name{'sd', 'd'}

discard--移除元素

name = {'sd', 'd', 's'}name.discard('s')返回结果:name        {'sd', 'd'}# remove移除非成员值会报错,discard移除非成员值,啥也不错!

clear--清空集合元素

name = {'d', 's'}name.clear()name返回结果:{}

copy--浅拷贝

name = {'sd', 'd', 's'}li = name.copy()返回结果:li        {'sd', 'd', 's'}

difference -- 求差集

name.difference(li)set()>>> name.difference(){'sd', 'd', 's'}

union--并集,创建新的对象

name = {'sd', 'd', 's'}li = {'s', 'd','h'}name.union(li)返回结果:{'h', 's', 'd', 'sd'}

difference_update---删除当前set中的所有包含在 new set 里的元素

li = ('s', 'd')name = {'sd', 'd', 's'}name.difference_update(li)name返回结果:{'sd'}

intersection--取交集,建立新的set集合

li = ('s', 'd')name = {'sd', 'd', 's'}name.intersection(li)返回结果:{'d', 's'}

intersection_update--取交集,更新原来的set集合

li = ('s', 'd')name = {'sd', 'd', 's'}name.intersection_update(li)返回结果:{'d', 's'}

isdisjoint--判断没有交集,返回True,否则,返回False

li = {'s', 'd'}name = {'sd', 'd', 's'}name.isdisjoint(li)

issubset--判断是否是子集

li = {'s', 'd'}name = {'sd', 'd', 's'}name.issubset(li)  #判断name是不是li的子集返回结果:Falseli.issubset(name)  #判断li是不是name的子集返回结果:True

issuperset--判断是否是父集

li = {'s', 'd'}name = {'sd', 'd', 's'}name.issuperset(li)  #判断name是不是li的父集返回结果:Trueli.issuperset(name)  #判断li是不是name的父集返回结果:False

pop--移除集合元素

name = {'sd', 'd', 's'}name.pop()返回结果:'sd' #同一个集合,删除集合元素的顺序固定se1 = {'a','s','sb'}se1.pop()返回结果:'sb'

symmetric_difference--去两个集合的差集,建立新的set集合对象

name = {'sd', 'd', 's'}li = {'s', 'd'}name.symmetric_difference(li)返回结果:{'sd'}

symmetric_difference_update--去两个集合的差集,更新原来的集合对象

name = {'sd', 'd', 's'}li = {'s', 'd'}name.symmetric_difference_update(li)返回结果:{'sd'}

1

END

岁月有你,惜惜相处

发现更多精彩

关注公众号

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值