将字符串“> 0”转换为python> 0

时间:2015-11-19 16:07:18

标签: python

我从xml文件中读取条件“> 0”,“< 60”等。将它们转换为python语言进行比较的最佳方法是什么?示例代码是我想要做的:

    if str == ">0":
        if x > 0:
            print "yes"
        else:
            print "no"
    elif str == "<60":
        if x < 60:
            print "yes"
    ...

3 个答案:

答案 0 :(得分:8)

我会使用regexoperator

from operator import lt, gt
import re

operators = {
    ">": gt,
    "<": lt,
}

string = ">60"
x = 3

op, n = re.findall(r'([><])(\d+)', string)[0]

print(operators[op](x, int(n)))

根据您的字符串,可以修改正则表达式。

答案 1 :(得分:1)

如果您非常确信XML文件中的数据已正确清理,那么您可以使用eval()

'yes' if eval(str(x) + op) else 'no'

虽然这个解决方案比其他答案简单得多,但它也可能更慢(但我没有对此进行测试)。

答案 2 :(得分:0)

也许只是使用切片?

string = "<60"
x = 3

op = string[0]
number = int(string[1:].strip())

if op == '>':
    print 'yes' if x > number else 'no'
else:
    print 'yes' if x < number else 'no'

输出:

yes