用括号中的元素拆分字符串
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)
我正在解决 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)