假设我有两个 pyomo 集 A 和 B,其中包含以下元素:
m.A = {1,2,3,4,5}
m.B = {a,b,c,d,5}
Run Code Online (Sandbox Code Playgroud)
我想检查一下;如果 A 有一些元素也在 B 中:
编辑:
那么以下不起作用:
if m.A & m.B is not None:
raise ValueError
Run Code Online (Sandbox Code Playgroud)
至少对于我的情况,当m.A = [None]和 时m.B = ['some_string'], if 语句也会被触发,但bool(m.A & m.B)正在工作。
实现此目的的最紧凑方法是使用&运算符:
a = {1,2,3,4}\nb = {4,5,6}\nresult = bool(a & b)\nRun Code Online (Sandbox Code Playgroud)\n\n使用&运算符:
%timeit bool(a & b)\n297 ns \xc2\xb1 3.04 ns per loop (mean \xc2\xb1 std. dev. of 7 runs, 1000000 loops each)\nRun Code Online (Sandbox Code Playgroud)\n\n使用intersection方法:
%timeit bool(a.intersection(b))\n365 ns \xc2\xb1 27.1 ns per loop (mean \xc2\xb1 std. dev. of 7 runs, 1000000 loops each)\nRun Code Online (Sandbox Code Playgroud)\n\n这两个解决方案非常相似,第二个解决方案很可能面临方法调用的开销。
\n| 归档时间: |
|
| 查看次数: |
6968 次 |
| 最近记录: |