在Python中计算表达式的值

use*_*766 3 python list

可能重复:
python将字符串转换为运算符

你好everyboby!

我刚开始学习Python并且有一个简单的问题.

是否有可能得到这个表达式的答案(计算)?

['10', '/', '5']
Run Code Online (Sandbox Code Playgroud)

我的问题:我转换'10','5'只是105.我怎样才能转换'/'/?我使用的是Python 2.7

San*_*nda 5

我认为最好的方法是:

检索列表的第一个元素并将其转换为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)
Run Code Online (Sandbox Code Playgroud)

正如ThiefMaster所说,您也可以使用操作员模块.替换这个:

operators = {
    '/': lambda a, b: a / b,
    '+': lambda a, b: a + b,
    '-': lambda a, b: a - b,
    '*': lambda a, b: a * b,
}
Run Code Online (Sandbox Code Playgroud)

通过

import operator
operators = {
    '/': operator.div,
    '+': operator.add,
    '-': operator.sub,
    '*': operator.mul,
}
Run Code Online (Sandbox Code Playgroud)