如何在Python中使用变量作为比较器?

时间:2019-06-27 16:29:39

标签: python comparison

我有一些KPI,对于某些KPI而言,超出目标值是好的,而对于其他KPI则不好。

我可以做类似的事情

comparator = '<'
value = 100
target = 200

然后继续说

value comparator target

因此python将其视为100 < 200并返回True?

对于上下文,我有一个KPI表,其格式如下:

KPI1: < 100 On Target, > 110 Action Required

KPI2: > 50 On Target, <

我计划遍历它们及其相关数据以应用RAG评级。

2 个答案:

答案 0 :(得分:-1)

您可以使用一流的方法。这使您可以跳过导入operator模块,并且比使用eval()更安全:


def lt(a, b): return a < b
def gt(a, b): return a > b
def eq(a, b): return a == b

comparator = lt
print(comparator(4, 5))  # >>> True

答案 1 :(得分:-2)

这可以工作(使用eval)

comparator_1  = '>'
x = 7
y = 12
print(eval('{} {} {}'.format(x,comparator_1,y)))
comparator_2  = '<'
print(eval('{} {} {}'.format(x,comparator_2,y)))

输出

False
True