如何根据 Python 中的 2 个运算符列表在列表中添加或减去 3 个项目?

How can I add or subtract 3 items in a list based on a list of 2 operators in Python?

假设我有一个列表 number_list = [3,4,9]

而我想根据operators = ['+', '-']

等列表对列表中的数字进行操作

该程序将获取这些列表并使用该列表对数字进行操作。使用示例列表,以下等同于:

3 + 4 - 9

并且该函数将 return 这个等式的结果。

虽然我知道加号和减号运算的顺序并不重要,但我计划将其与乘法和除法一起使用,其中顺序很重要。

感谢任何能提供一些关于我将如何做到这一点的见解的人。

不关心安全性的惰性解决方案(阅读 eval 可以做的“坏事”)

number_list = [3, 4, 9, 5]
operators = ["+", "-", '*']

# create a new list that can hold the above lists
new = [None] * (len(number_list) + len(operators))

# assign the first list using slice assignment
new[::2] = number_list
# assign the second list using slice assignment
new[1::2] = operators
# make all the elements to a string and eval
res = eval(''.join(map(str, new)))
print(res)

输出

-38

假设

operators 必须具有有效的运算符,并且必须正好比 number_list 的大小小一。同样,如果您在实际生产代码中这样做,eval 不是正确的选择。