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 编译器任务的一部分。
解决方案
好的,我已经考虑了一夜,并想出了一个解决方案,使用 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', '(', ')', ';']
推荐阅读
- python-3.x - 电影数据集中的一列流派在每一行中有多个类别。如何将所有类别彼此分开?
- performance - 在查询相关集合的子级及其子级时尝试提高实体框架的性能
- django - Wagtail:如何验证用户是否可以访问模板中的页面
- javascript - 使对象方法成为香草JS中的变量
- azure - 带有 mqtt 的 Azure IoT Hub 设备供应系统
- python - WEB SCRAPING - python 请求会话无法收集数据
- python - Python winreg - 如何将换行写入 REG_SZ 值
- python - 如何将列表分成其组成部分并用它们创建变量
- javascript - 任何人都可以帮我解决Dimensions,RN吗?
- c++ - 为什么 GCC 聚合初始化数组首先用零填充整个事物,包括非零元素?