与python中的set.intersection相反?

use*_*061 48 python set

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

有没有办法做这个不相交的相反版本?这是不常见的两个项目ab; 与独特物品a结合的独特物品b

Mar*_*ers 86

你正在寻找对称的差异 ; 所有仅出现在集合a或集合b中的元素,但不是两者:

a.symmetric_difference(b)
Run Code Online (Sandbox Code Playgroud)

set.symmetric_difference()方法文档:

返回一个新集合,其中包含集合中的元素或其他元素,但不是两者.

您可以使用^运营商也一样,如果两个ab是集:

a ^ b
Run Code Online (Sandbox Code Playgroud)

while set.symmetric_difference()另一个参数采用任何迭代.

输出相当于(a | b) - (a & b)两个集合的并集减去两个集合的交集.


小智 7

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