Python 分解带括号的字符串

本文介绍了一种使用Python实现的括号匹配算法,该算法通过遍历字符串中的括号来确定其正确配对,并从字符串中提取出由括号界定的数学表达式片段。
__author__ = 'Alex'
import re;
str_list = []
def fetch(ci,li,str):
    for k in range(len(ci)-1):
        if ci[k] > ci[k+1]:
            print(("li[k] = %s,li[k+1] = %s")%(li[k],li[k+1]))
            s = str[li[k]:li[k+1]+1]
            str_list.append(s)
            print (str_list)
            del ci[k]
            del ci[k]
            del li[k]
            del li[k]
            return str_list

str = "1 - 2*(17-(60-30+(-40*2/5)*9-2*5/3+7/3*99/4*2998+10*568/14))-(-4*3)/(16-3*2)"
count = 0
i_list = []
count_list = []
for i in range(len(str)):
    if str[i] == '(':
        # print ("i= ",i)
        count +=1
        i_list.append(i)
        count_list.append(count)
        print (("i = %s ,count = %s ")%(i,count))
    if str[i] == ')':
        # print ("i= ",i)
        count -=1
        i_list.append(i)
        count_list.append(count)
        print (("i = %s ,count = %s ")%(i,count))
print (i_list)
print (count_list)

while len(count_list)>0:
    symbols_list = fetch(count_list,i_list,str)

# print (int(symbols_list[1]))


转载于:https://www.cnblogs.com/python-study/p/5491376.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值