首页 > 解决方案 > 如何以适当的分隔将表达式存储在列表中?

问题描述

我正在尝试使用堆栈进行括号匹配(不平衡或平衡)程序并对此有疑问...

如何通过适当的分隔将表达式存储在列表中..

我尝试将表达式存储为字符串,但也存在一个问题,例如用户是否提供输入

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() 函数)但是如果用户没有通过空格输入怎么办?

标签: pythonpython-3.xlistdata-structures

解决方案


你的意思是:

import re
exp = "2*3+11+2"
print([i for i in re.split('(\D)', exp) if i.strip() != ''])

输出:

['2', '*', '3', '+', '11', '+', '2']

推荐阅读