sympy - 如何从 sympy 逻辑对象/表达式中获取所有文字(包括否定文字)?
问题描述
说我有这个表达:
输入:(p & ~q & q)
我知道它会简化为 False,但只是为了更容易理解。我想得到这个:
输出:[p, ~q, q]
我可以在不将表达式转换为字符串和字符串解析的情况下做到这一点吗?
解决方案
更通用的方法是请求布尔值并过滤 Symbol 和 Not
>>> from sympy import Symbol, Not, Boolean, Or, And
>>> eq=Or(And(x,~y),z)
>>> [i for i in eq.atoms(Boolean) if isinstance(i, (Symbol,Not))]
[x, ~y, z, y]
推荐阅读
- nativescript - 尽管我遵循了每一步,但 Font-Awesome 在 NativeScript 中不起作用
- php - 错误的排序顺序(JOIN)
- flutter - 如何在 Dart/Flutter 中重试 Future?
- python - 寻找一种更快的模糊字符串匹配方法
- php - 有什么方法可以在php中每1小时工作一次吗?
- c# - c# linq 如果项目在列表中并从列表中获取匹配项目
- python - 修改 sphinx_bootstrap_theme 方法渲染
- firebase - 关于 Firebase 关于静态和动态页面的一些混淆
- dropdown - 如何从组件内触发下拉菜单
- c# - Transactionscope 抛出异常此平台在打开连接对象时不支持分布式事务