<分区>
Possible Duplicate:
python convert a string to an operator
大家好!
我刚开始学习 Python,有一个简单的问题。
是否有可能得到这个表达式的答案(计算)?
['10', '/', '5']
我的问题:我将 '10'
和 '5'
转换为 10
和 5
。如何将 '/'
仅转换为 /
?我正在使用 Python 2.7
<分区>
Possible Duplicate:
python convert a string to an operator
大家好!
我刚开始学习 Python,有一个简单的问题。
是否有可能得到这个表达式的答案(计算)?
['10', '/', '5']
我的问题:我将 '10'
和 '5'
转换为 10
和 5
。如何将 '/'
仅转换为 /
?我正在使用 Python 2.7
最佳答案
我认为最好的方法是:
检索列表的第一个元素并将其转换为 int
检索列表的第三个元素并将其转换为 int
将第二个元素映射到一个函数来计算结果
import sys
element = ['10', '/', '5']
operators = {
'/': lambda a, b: a / b,
'+': lambda a, b: a + b,
'-': lambda a, b: a - b,
'*': lambda a, b: a * b,
}
try:
a = int(element[0])
b = int(element[2])
result = operators[element[1]](a, b)
print result
except:
sys.exit(1)
正如 ThiefMaster 所说,您还可以使用 operator 模块。替换这个:
operators = {
'/': lambda a, b: a / b,
'+': lambda a, b: a + b,
'-': lambda a, b: a - b,
'*': lambda a, b: a * b,
}
通过
import operator
operators = {
'/': operator.div,
'+': operator.add,
'-': operator.sub,
'*': operator.mul,
}
关于python - 在 Python 中计算表达式的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5448297/