python - 无法针对字符串列表处理字典列表

标签 python

d = ['X + Y = Z', 'X <=Y']
p = [{'Y': 1, 'X': 0, 'Z': 0}, {'Y': 1, 'X': 0, 'Z': 3}, {'Y': 1, 'X': 0, 'Z': 6}, {'Y': 1, 'X': 0, 'Z': 9}, {'Y': 1, 'X': 1, 'Z': 0}, {'Y': 1, 'X': 1, 'Z': 3}]

我需要创建一些结构来存储表达式列表,其中变量已更改。

我需要知道: X、Y、Z 当前值 将字母更改为整数的表达式

而且它必须是每个值的字典

问题是看对于什么X,Y,Z,所有的表达式都是True

最佳答案

根据这些表达式是由您制作的(因此您可以相信它们),一个简单的解决方案是使用 eval()像这样:

correct_values = []
for value in p:
    #if eval(d[0], value) and eval(d[1], value):   # basic version
    if all(eval(exp, value) for exp in d):       # ehanced version thanks to @isbadawi
       correct_values.append(value)

但您必须更正表达式 X + Y = Z is not valid python, X + Y == Z is a valid python expression.

但是对于您在示例中给出的值,没有任何匹配项:(

关于python - 无法针对字符串列表处理字典列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8547284/

相关文章:

python - Pandas 对列进行四舍五入以获得精确值

python - 当我 pip 安装它时,pyproj 无法编译。这不是关于 gcc

python - 导入 pandas.DataFrame 时获取 "IOError: [Errno 13] Permission denied:.."

python - 替代append()

python - sklearn BallTree 更改传递给指标的数据

python - 为最短路径提供与图中其余路径不同的颜色

python - celery task_success 与发件人过滤器

python - 如何遍历枚举对象并使用 next() 函数打印所有索引项对?

Python从列表的索引中获取值

python - 如何使用 matplotlib 中的 Latex 在我的轴标题中获得千分之一符号?