python - 在 Python 中计算表达式的值

标签 python list

<分区>

Possible Duplicate:
python convert a string to an operator

大家好!

我刚开始学习 Python,有一个简单的问题。

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

['10', '/', '5']

我的问题:我将 '10''5' 转换为 105。如何将 '/' 仅转换为 /?我正在使用 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/

相关文章:

python - Pandas - 如何创建一个新列,该新列从前一行或下一行(如果第一行)的列中获取值

python -\r 和\b 在 Python 中不起作用? (如何删除一条线?)

python - 如何获取按降序排列的数组的索引

java - 尝试从文本文件打印列表?

python - 拆分列表并打印所需的输出

python - 在以 latin1 编码的文件中写入然后读取字符串

python - 为什么 Pandas 将日期时间转换为聚合函数中的 float

c++ - 如何在运行时设置列表的类型?

python - 遍历 python 元组列表并更改值

python - 将列表的某些字符转换为字符串