Python set集合

def difference(self, *args, **kwargs): 
s1 = set([1,2,3,4,5])
print (s1)

s2 = set([3,4,6])
print (s2)

s3 = s1.difference(s2)
print (s3)
结果:

{1, 2, 3, 4, 5}
{3, 4, 6}
{1, 2, 5}

 结论:difference计算在s1集合中但是不在s2集合中的内容,并且生成一个新的集合s3,原来s1,s2不变

def difference_update(self, *args, **kwargs): 
s1 = set([1,2,3,4,5])
s2 = set([3,4,6])
s4 = s1.difference_update(s2)
print (s1)
print (s2)
print (s4)
结果:

{1, 2, 5}
{3, 4, 6}
None

 结论:difference_update计算了在s1集合中但是不在s2集合中的内容,并且更新原有的集合s1,没有生成新的集合(s4=None)

def intersection(self, *args, **kwargs):
s1 = set([1,2,3,4,5])
s2 = set([1,2,6,7])

s3 = s1.intersection(s2)
print (s3)
print ("==================")
print (s1)
print (s2)
结果:

{1, 2}
==================
{1, 2, 3, 4, 5}
{1, 2, 6, 7}

 结论:取交集

def symmetric_difference(self, *args, **kwargs):
s1 = set([1,2,3,4,5])
s2 = set([1,2,6,7])

s3 = s1.symmetric_difference(s2)
print (s3)
print ("==================")
print (s1)
print (s2)
结果:

{3, 4, 5, 6, 7}
==================
{1, 2, 3, 4, 5}
{1, 2, 6, 7}

 结论:两个集合里面不匹配的项

配置库的写法:

s1 = set([1,2,3,4,5])
s2 = set([1,2,6,7])

ret_join = s1.intersection(s2)
ret_del = s1.difference(ret_join)
ret_add = s2.difference(ret_join)

print (ret_join)
print (ret_del)
print (ret_add)

{1, 2}
{3, 4, 5}
{6, 7}



原文地址:https://www.cnblogs.com/python-study/p/5444957.html