在Python表达式中使用字符串(表示逻辑运算符)

Rya*_*yan 1 python expression operators

是否有可能以某种方式将一串字符串,or或者说,and形成一个可识别为逻辑运算符的形式?

例如,是否可以执行以下操作:

l = [1, 2, 3, 4, 5]
o = {item1:'or'}

for i in l:
    if i > 4 o[item1] i < 0:
        print i
Run Code Online (Sandbox Code Playgroud)

哪里o[item1]被认为是有效的or逻辑运算符?

nne*_*neo 5

你可以使用这个operator包:

import operator

o = {item1: operator.or_}

if o[item1](i>4, i<0):
    ...
Run Code Online (Sandbox Code Playgroud)

注意,or_不会像短路一样短路or.如果您确实需要短路行为,可以使用eval(但通常不建议这样做).