检查一个集合中的元素是否存在于另一个集合中

时间:2018-08-02 13:16:54

标签: set elements pyomo

假设我有两个pyomo集A和B,其中包含以下元素:

m.A = {1,2,3,4,5}
m.B = {a,b,c,d,5}

我要检查;如果A有一些元素也在B中:

编辑:

以下无效

if m.A & m.B is not None:
    raise ValueError

至少对于我在m.A = [None]m.B = ['some_string']的情况下,也触发了if语句,但是bool(m.A & m.B)在起作用。

2 个答案:

答案 0 :(得分:0)

您正在寻找intersection

>>> A = {1,2,3,4,5}
>>> B = {'a','b','c','d',5}
>>> A.intersection(B)
set([5])

答案 1 :(得分:0)

最简单的方法是使用 &运算符

a = {1,2,3,4}
b = {4,5,6}
result = bool(a & b)

速度比较

使用&运算符:

%timeit bool(a & b)
297 ns ± 3.04 ns per loop (mean ± std. dev. of 7 runs, 1000000 loops each)

使用intersection方法:

%timeit bool(a.intersection(b))
365 ns ± 27.1 ns per loop (mean ± std. dev. of 7 runs, 1000000 loops each)

这两种解决方案非常相似,第二种很可能会面临方法调用的开销。