set集合玩法、三目运算

set是无序的,无法用下标获取值

 

创建set二种方式

1、第一种

s1=set()   #创建一个空的set,看下面就知道为什么要这么创建一个空的集合

2、第二种

s2={11,22,33,44} #不仔细看有点想字典,如果s2={} 这个就是一个空的字典类型

 

增加集合add

>>> s1.add(11)
>>> s1
set([11])

 

清空集合内容

s.clear()

查找二个集合中不一样值

>>> a={11,22,33}
>>> b={22,33,44}
>>> a.difference(b)    #查找A比B多的
set([11])
>>> b.difference(a)  #查找B比A多的
set([44])

 

更新集合(B保留A集合中没有的值)

>>> a={11,22,33}

>>>b={33, 44, 22}

>>> b.difference_update(a)
>>> b
set([44])

 

 

删除一个指定集合元素,指定元素没有不报错

>>> a={11,22,33}
>>> a.discard(11)
>>> a
set([33, 22])

 

删除指定元素,没有报错

set([33, 22])
>>> a.remove(33)
>>> a
set([22])

 

 

获取二个集合的交集

>>> b={11,22,33,44}
>>> a={22,55,66}
>>> b.intersection(a)
set([22])

 

如果没有交集返回true,有交集返回falsse

>>> b={11,22,33,44}
>>> a={22}

>>> b.isdisjoint(a)
False

 

 

子序列和父序列

>>> a={11,22,33,44}
>>> b={11,22}

判断A是否是B的子序列,B不包含A所以不是

>>> a.issubset(b)
False

判断A是B的父序列,A包含B的所有值所以A是B的父序列

>>> a.issuperset(b)

True

 

 

 

移除后赋值

>>> b
set([11, 22])
>>> a=b.pop()
11

 

取出二个集合的对称交集(二个集合的差集)

>>> a
set([33, 11, 44, 22])
>>> b
set([66, 11, 22, 55])
>>> a.symmetric_difference(b)
set([33, 66, 44, 55])

 

symmetric_difference_update 和上面的_update效果一样

 

 

获取a和b的并集

>>> a={11,22,33,44,55}
>>> b={22,77,88,11}
>>> a.union(b)
set([33, 11, 44, 77, 22, 55, 88])

 

更新集合

>>> a={11,22,33,44,55}
>>> a.update([11,123,456,789]) #这就是 循环列表然后把数据增加进去
>>> a
set([33, 456, 11, 44, 789, 22, 55, 123])

 

 

三目运算

下面的语法完全可以用一句代码完成

if a==1:b=1

else:b=2

 

a==1条件成立就赋值1,不成立就是2

b=1 if a==1 else 2

 

转载于:https://www.cnblogs.com/menkeyi/p/6485114.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值