set - 检查一个集合的元素是否存在于另一个集合中
问题描述
假设我有两个 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)
正在工作。
解决方案
您可以实现此目的的最紧凑的方法是使用&
运算符:
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)
这两种解决方案非常相似,第二种解决方案很可能面临方法调用的开销。
推荐阅读
- r - 如何使用 dplyr 减去 R 中的列中的特定值
- jquery - jQuery自动完成加载
- python - 如何访问 pandas 中的数据透视表以填充原始数据框中的 nan 值?
- google-cloud-platform - Google Wavenet 语音无法正确发音 - 不,知道,雪
- tkinter - 如何从 tkinter 按钮调用类函数?
- openid-connect - 从我的集群中删除 IAM OIDC 身份提供商
- docker - 如何为 bbb(蓝色大按钮)编写 docker-compose 文件?
- java - 使用 Selenium 在表中添加新行时验证分页
- druid - 德鲁伊 groupBy 查询 - json 语法 - 间隔
- r - 如何在插入符号中为r中的随机森林设置ppv?