python - 如何以适当的分隔将表达式存储在列表中?
问题描述
我正在尝试使用堆栈进行括号匹配(不平衡或平衡)程序并对此有疑问...
如何通过适当的分隔将表达式存储在列表中..
我尝试将表达式存储为字符串,但也存在一个问题,例如用户是否提供输入
exp = "2*3+11+2"
for i in exp:
print(i)
Output :
for the 11 it will print 1 1 (two times)
我如何存储在列表中.. 我的意思是如果用户提供输入
like =(2*3)+(4*60)/3
它应该存储 like[(,2,*,3,),+,(,4,*,60,),/,3]
以便我可以正确遍历它并检查 ( 或 ) 括号
我可以通过像 2 + 3 这样的空格输入来做到这一点(通过使用 split() 函数)但是如果用户没有通过空格输入怎么办?
解决方案
你的意思是:
import re
exp = "2*3+11+2"
print([i for i in re.split('(\D)', exp) if i.strip() != ''])
输出:
['2', '*', '3', '+', '11', '+', '2']
推荐阅读
- c# - 为什么静态变量的值不会增加?
- python - sockect.gethostbyaddr 在从文件读取的 for 循环中
- java - 如何通过flask返回一个java可以接受的实例化数据
- postgresql - 续集如何在 Postgres JSONB 列上使用聚合函数
- css - 如何使用使用 Kendo 网格的 React 组件?
- javascript - 解码/调试 stripe.js:属性“Stripe”的值为 null 或未定义,而不是 Function 对象
- java - SonarQube 中是否禁止使用 ReplaceAll() 方法
- python - 向汇总结果添加附加信息
- java - 如何在 Android 中读取 TypedArray 数据?
- javascript - 如何获得变量统计