Python求数据的交、并、差集、对称差集

1.集合(set)

首先要了解一下集合set

set是一个无序不重复元素集,Python数据类型的一种,由于是无序的,不能通过索引和切片来做一些操作。
主要有添加、删除、交集、并集、差集、对称差集 五种操作

2.集合的操作

a.添加

a=set([1,2,3])
#方法1:添加1项
a.add(4)
#方法2:添加多项,update中的参数必须是迭代器
a.update([4,5,6])

b.删除(四种方法)

a.remove(1)    #如果删除不存在的元素,产生KeyError
a.discard(2)   #如果存在元素2,则删除
c=a.pop()      #删除一个不确定的元素,并且赋给c,如果集合a为空则产生 KeyError
a.clear()      #删除集合中所有元素 

c.交、并、差、对称差

# -*- coding: utf-8 -*-
"""
Created on Fri Jan  5 19:50:23 2018

@author: Jane
"""
a=set(range(1,11))             #a为[1,2,3,4,5,6,7,8,9,10]
b=set(range(0,10,2))           #b为10以内的偶数列[0,2,4,6,8]
"""
=====================方法一:运算符版本=========================
"""
union=list(a|b)                #并               
inter=list(a&b)                #交 
diff=list(a-b)                 #差
sys_diff=list(a^b)             #对称差集:在a或b中,不同时存在在两个集合中
"""
=====================方法二:非运算符版本======================
"""
tmp1=list(a.union(b))
tmp2=list(a.intersection(b))
tmp3=list(a.difference(b))
tmp4=list(a.symmetric_difference(b))

print(tmp1)               #输出集合的并:0,1,2,3,4,5,6,7,8,9,10
print(tmp2)               #输出集合的交:2,4,6,8
print(tmp3)               #输出集合的差:1,3,5,7,9,10 
print(tmp4)               #输出对称差集:0,1,3,5,7,9,10

你可能感兴趣的:(Python求数据的交、并、差集、对称差集)