用括号中的元素拆分字符串

Split a string with bracketed elements

我正在解决 codewars 中的一个问题,但我卡在了一步

我有一个像这样的字符串 defr[fr]i##abde[fgh]ijk 我想在元素之间添加分隔符,但是括号内的元素应该是这种情况, 所以输出应该是 [d,e,f,r,[fr],i,#,#,a,b,d,e,[fgh],i,j,k]

我试过在不同的条件下循环,

我想出了这个代码

        if land[i] == "[":
            print(land[i])
            j = i +1
            while land[j] != "]":
                print(land[j])
                j +=1
            else:
                number_of_shelter.append(land[i:j+1])
        else:
            continue

但它只追加括号中的元素

谁能告诉我如何将其他元素与括号中的元素一起附加的方法

其他示例: ##[a]b[c]#>>> [#,#,[a],b,[c],#]

[a]#[b]#[c] >>> [[a],#,[b],#,[c]]

这个有效:

def foo(s):
    output = ""
    inBracket = False
    for i in s:
        if i == "[" or (inBracket == True and i != "]"):
            output+= i
            inBracket = True
        else:
            inBracket = False
            output += i + ","
    if output[len(output)] == ",":
        output = output[:-1]
    return output

这是工作代码

str = "defr[fr]i##abde[fgh]ijk"
arr = []
in_the_bracket = False
for i in str:
    if i == '[':
        in_the_bracket = True
        chr = ''
    if in_the_bracket:
        chr = chr + i
    else:
        arr.append(i)

    if i == ']':
        in_the_bracket = False
        arr.append(chr)
print(arr)