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