python - 使用运算符计算数字列表
问题描述
计算列表内的值有一个有趣的任务。
[2025, 'minus', 5, 'plus', 3]
2023
[2, 'multiply', 13]
26
有什么建议可以在 python3 中实现吗?
解决方案
正如@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
推荐阅读
- azure - 使用 Azure 信息保护的授权错误
- c# - 如何从 WPF 应用程序安全可靠地与数据库交互
- c++ - 为什么我的 C++ 图形程序没有使用 g++ 编译器显示任何输出?
- javascript - 在 JavaScript 中单击另一个手风琴时删除显示手风琴
- c# - unity - 如何在序列化字段更改时更新对象?
- angular - Angular 9 *ngIf 错误
- go - Golang X509 密钥对被忽略
- node.js - Mongoose/NodeJS - .EJS 模板中的排序按钮
- html - 使用正则表达式提取年份
- django - 当使用具有多个 order by 和 distinct 的 Q 过滤器时,Django order by issue