与python中的set.intersection相反?

时间:2015-04-29 15:13:54

标签: python set

在Python中,您可以使用a.intersection(b)查找两个集合共有的项目。

有没有办法做不相交的相反的版本? ab不相同的项目; a中的唯一项目与b中的唯一项目合并?

4 个答案:

答案 0 :(得分:1)

a={1,2,4,5,6}
b={5,6,4,9}
c=(a^b)&b
print(c) # you got {9}

答案 1 :(得分:1)

最好的方法是列表理解。

a = [ 1,2,3,4]
b = [ 8,7,9,2,1]
c = [ element for element in a if element not in b] 
d = [ element for element in b if element not in a] 
print(c) 
# output is [ 3,4]
print(d) 
# output is  [8,7,9]

您可以同时加入两个列表

答案 2 :(得分:0)

尝试使用此代码(set(a) - intersection(a& b))

a = [1,2,3,4,5,6]
b = [2,3]

for i in b:
   if i in a:
      a.remove(i)

print(a)

输出为[1,4,5,6] 我希望,它会起作用

答案 3 :(得分:0)

e,f是您要检查不相交的两个列表

a = [1,2,3,4]
b = [8,7,9,2,1]

c = []
def loop_to_check(e,f):
    for i in range(len(e)):
        if e[i] not in f:
            c.append(e[i])


loop_to_check(a,b)
loop_to_check(b,a)
print(c)

## output is [3,4,8,7,9]

这会循环到列表并返回不相交的列表