我从xml文件中读取条件“> 0”,“< 60”等。将它们转换为python语言进行比较的最佳方法是什么?示例代码是我想要做的:
if str == ">0":
if x > 0:
print "yes"
else:
print "no"
elif str == "<60":
if x < 60:
print "yes"
...
答案 0 :(得分:8)
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