python set集合一些基本方法

set集合是一个无序且不重复的元素集合

这个数据类型没有重复的,而且也没有顺序

 

一些基本的方法:

添加元素

s1 = {11, 22, 33}
s1.add(123)#添加一个新的元素
print(s1)

{123, 33, 11, 22}

 

清除内容:

s1 = {11, 22, 33}
s1.clear()#clear会清除所有的内容
print(s1)

set()

 

差集

s1 = {11, 22, 33}
s2 = {22, 33, 44}
s3 = s1.difference(s2)#只输出前者存在的,后者不存在的
print(s3)

{11}
s1 = {11, 22, 33}
s2 = {22, 33, 44}
s1.difference_update(s2)#更新差集到前者,只输出前者存在的,后者不存在的,但是这个不需要第三个变量
print(s1)

{11}

 

交集:

s1 = {11, 22, 33}
s2 = {22, 33, 44}
s3 = s1.intersection(s2)#只输出它俩公有的
print(s3)

{33,22}
s1 = {11, 22, 33}
s2 = {22, 33, 44}
s1.intersection_update(s2)#更新交集到前者,只输出它俩公有的,这种方法不需要第三个变量
print(s1)

{33,22}

 

移出指定元素:

s1 = {11, 22, 33}
s2 = {22, 33, 44}
s1.discard(11)#可以看到如果存在,就删除后返回剩余的元素
print(s1)
s2.discard(456)#如果不存在,也返回剩余的元素,不会报错
print(s2)

{33, 22}
{33, 44, 22}

 

判断是否有交集:

s1 = {11, 22, 33}
s2 = {22, 33, 44}
print(s1.isdisjoint(s2))#判断是否有交集,如果没有返回True,否者返回False

False

 

随机移出元素:

s1 = {11, 22, 33}
s1.pop()#这个是随机移出得,因为set集合没有顺序
print(s1)

{11,33}

 

移出指定元素:

s1 = {11, 22, 33}
s2 = {22, 33, 44}
s1.remove(11)#存在则不报错
print(s1)
s2.remove(456)#不存在报错
print(s2)

{33,22}
    s2.remove(456)
KeyError: 456

 

对称差集:

s1 = {11, 22, 33}
s2 = {22, 33, 44}
s3 = s1.symmetric_difference(s2)#将它俩所有不相同的元素放在一起
print(s3)

{11,44}
s1 = {11, 22, 33}
s2 = {22, 33, 44}
s1.symmetric_difference_update(s2)#将更新的内容放到前者,不需要第三个变量,其他跟上面一样
print(s1)

{11,44}

 

并集:

s1 = {11, 22, 33}
s2 = {22, 33, 44}
s3 = s1.union(s2)#把它俩的内容全部输出到一起,但是set集合是唯一的,所以输出的内容没有一样的
print(s3)

{33, 22, 11, 44}

 

更新:

s1 = {11, 22, 33}
s2 = {22, 33, 44}
s1.update(s2)#跟上面一样,但时没有第三个变量
print(s1)

{33, 22, 11, 44}

 

posted @ 2017-11-24 22:49 smelond 阅读(...) 评论(...) 编辑 收藏