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/