如何在2个浮点数之间插入一个运算符并计算结果?

时间:2019-07-11 17:35:46

标签: python python-3.x

我有两个列表:

numbers =[2.4, 3.5, 0.5]
operations = ['+', '-']

请注意,操作中的值将更改,因此我不能只键入:

solution = numbers[0] + numbers[1]

我需要在这些数字之间插入operations[0]的值。

我尝试过:

solution = numbers[0] + operations[0] + numbers[1]

但是我不能合并浮点数和字符串值。

3 个答案:

答案 0 :(得分:2)

Python中的每个运算符都是available through the operator模块。这样,您可以根据需要动态使用运算符。

您可以将函数本身包含在列表中,然后调用它:

import operator

numbers = [2.4, 3.5, 0.5]
operations = [operator.add, operator.sub]

print(operations[0](numbers[0], numbers[1]))
#      ^-- identical to operators.add(numbers[0], numbers[1])

答案 1 :(得分:0)

您可以使用lambda表达式来表示运算符:

numbers =[2.4, 3.5, 0.5]
operations = [lambda x,y: x + y, lambda x,y: x - y]

solution = operations[0](numbers[0], numbers[1])

请注意,只有当您实际调用函数时,这才会预先计算值。

答案 2 :(得分:-1)

您可以使用eval(string),它将给定的字符串参数作为一段代码运行:

numbers =[2.4, 3.5, 0.5]
operations = ['+', '-']

# it is supposed that len(operations)+1 == len(numbers)
s = ''
for i in range(len(operations)):
    s += str(numbers[i]) + operations[i]

s += str(numbers[i+1])  # s='2.4+3.5-0.5'
print(eval(s))