在Python中是否可以检查变量是否满足存储为字符串的逻辑表达式?

在Python中是否可以检查变量是否满足存储为字符串的逻辑表达式?,python,Python,如果我有一个变量 dummy = 'abc' 还有一本字典,我在其中保存了不同的逻辑OR表达式,其中或由“|”表示 我想以某种方式将逻辑表达式与固定变量进行比较,下面的for循环不起作用,但它显示了我理想的做法 for test_number,logic_string in logic_dict.items(): print(dummy == logic_string) 我想输出它 False False True 我知道我可以通过书写手动完成这项工作 print(dummy ==

如果我有一个变量

dummy = 'abc'
还有一本字典,我在其中保存了不同的逻辑OR表达式,其中或由“|”表示

我想以某种方式将逻辑表达式与固定变量进行比较,下面的for循环不起作用,但它显示了我理想的做法

for test_number,logic_string in logic_dict.items():
    print(dummy == logic_string)
我想输出它

False
False
True
我知道我可以通过书写手动完成这项工作

print(dummy == 'def' or dummy == 'how')
print(dummy == 'does' or dummy == 'this')
print(dummy == 'abc' or dummy =='hi')

但是有没有一种方法可以用逻辑表达式的字符串表示法做到这一点呢?

我不确定您是如何为这种情况做好准备的,我非常确定有一种方法可以正确避免这种复杂的逻辑子句解析,但值得一提的是,下面是您如何处理手头的特定用例:

dummy = 'abc'
logic_dict = {'1':'def|how', '2':'does|this', '3':'abc|hi'}

for test_number,logic_string in logic_dict.items():
    print(dummy in logic_string.split('|'))

警告:如果您的字符串包含
|
字符…

我不确定您是如何为这种情况做好准备的,我很确定有一种方法可以正确避免这种复杂的逻辑子句解析,但无论如何,以下是您如何处理手头的特定用例:

dummy = 'abc'
logic_dict = {'1':'def|how', '2':'does|this', '3':'abc|hi'}

for test_number,logic_string in logic_dict.items():
    print(dummy in logic_string.split('|'))

警告:如果字符串包含
|
字符…

,则整个概念都会乱成一团(建议的解决方案也不值一提)。它应该是
print(dummy=='def'或dummy=='how')
对不起,你是对的,经过编辑。拆分字符串,并在
中使用
。顺便说一句,键为序列号的字典可能应该是一个列表。请注意@Barmar的建议与
print(dummy in logic_string.Split('.|'))一样简单。
这不是手动操作的方式。它应该是
print(dummy=='def'或dummy=='how')
对不起,你是对的,经过编辑。拆分字符串,并在
中使用
。顺便说一句,键为序列号的字典应该是一个列表。请注意@Barmar的建议与
打印(dummy in logic_string.Split('.|'))一样简单。