lst = 'AB[CD]EF[GH]'
输出:['A','B','CD','E','F','GH']
这是我尝试过的方法,但是没有用...
while(index < len(my_string)):
curr_char = my_string[index]
if(curr_char == '['):
while(curr_char != ']'):
multi = my_string[index + 1]
index += 1
lst += multi
有人可以帮忙吗?无需导入正则表达式或其他任何东西。我想不使用它就这样做。
最佳答案
原始代码的问题似乎是:
1)lst,index和multi未初始化
2)循环是无限的,因为循环变量(索引)不会在每次迭代中递增。
3)检测到右括号时应跳过该括号以避免将其包含在最终列表中
此代码是如何解决这些问题的示例:
def getList(s):
outList=[]
lIndex=0
while lIndex < len(s):
if s[lIndex] == "[":
letters=""
lIndex+=1
while s[lIndex] != "]":
letters+=s[lIndex]
lIndex+=1
outList.append(letters)
else:
outList.append(s[lIndex])
lIndex+=1
return outList
print(getList('AB[CD]EF[GH]'))