是否有可能以某种方式将一个字符串(例如or
或and
)转换为可识别为逻辑运算符的表单?
例如,是否可以执行以下操作:
l = [1, 2, 3, 4, 5]
o = {item1:'or'}
for i in l:
if i > 4 o[item1] i < 0:
print i
其中o[item1]
被识别为有效的or
逻辑运算符?
答案 0 :(得分:5)
您可以使用operator
包:
import operator
o = {item1: operator.or_}
if o[item1](i>4, i<0):
...
请注意,or_
不会像or
那样短路。如果您确实需要短路行为,可以使用eval
(但通常不推荐这样做。)