从带有特定符号和其他字符的字符串中拆分符号

2024-04-24 13:10:37 发布

您现在位置:Python中文网/ 问答频道 /正文

我已经编写了代码将特定符号从符号列表中拆分出来,但它有缺陷,不能正常工作。我希望有人能澄清和帮助我

我想做的是将这个字符串(例如)-'game.run();'拆分到这个字符串列表-['game','.','run','(', ')',';']其中符号列表-

Symbollst = [
        '{' , '}' , '(' , ')' , '[' , ']' , '.' ,
        ',' , ';' , '+' , '-' , '*' , '/' , '&' ,
        ',' , '<' , '>' , '=' , '~'
        ]

我的初始代码:

 for token in r_splitted :
    if any(x in token for x in Symbollst) :
        TokenInSymbol = [i in token for i in Symbollst]
        new_token = token.split(Symbollst[TokenInSymbol.index(True)])
        new_token.insert(1,Symbollst[TokenInSymbol.index(True)])
        for i in new_token :
            if i=='' : continue
            self.TokenList.append(i)

注意-这是Nand2Tetris编译器任务的一部分


Tags: run字符串代码intokengametrue列表
1条回答
网友
1楼 · 发布于 2024-04-24 13:10:37

好吧,我考虑了一夜,想出了一个解决方案,使用list(token)来分隔每个字符并单独处理:

Symbollst = [
        '{' , '}' , '(' , ')' , '[' , ']' , '.' ,
        ',' , ';' , '+' , '-' , '*' , '/' , '&' ,
        ',' , '<' , '>' , '=' , '~'
        ]

token = 'game.run();'
temp_token = list(token)
new_token=[]
string=''

for i in temp_token :
    if i in Symbollst :
        if not string=='' : new_token.append(string)
        new_token.append(i)
        string=''
    else : string = string + i

print new_token

所以对于输入-

token = 'game.run();'

输出为:

new_token = ['game', '.', 'run', '(', ')', ';']

相关问题 更多 >