首页 > 解决方案 > 使用运算符计算数字列表

问题描述

计算列表内的值有一个有趣的任务。

[2025, 'minus', 5, 'plus', 3] 

2023

[2, 'multiply', 13]

26

有什么建议可以在 python3 中实现吗?

标签: pythonpython-3.x

解决方案


正如@roganjosh 所建议的那样,创建一个字典并执行操作

import operator
ops = { "plus": operator.add, "minus": operator.sub,'multiply':operator.mul, 'divide':operator.div } 
a=[2025, 'minus', 5, 'plus',3] 
try:
    val=int(a[0])
    stack=[]
    error=False

    for i in range(1,len(a)):
        if isinstance(a[i],str):
            stack.append(a[i])
        if isinstance(a[i],int):
            temp_operator =stack.pop()
            operation=ops.get(temp_operator)
            val=operation(val,a[i])
except Exception:
    print('Invalid input')
    error=True
if(stack):
    print('Invalid input')
    error=True
if(not error):
    print(val)

输出

2023

推荐阅读