che*_*fin 8 python recursion list sublist
这是示例表单,稍后我将尝试用文字解释.我有一个打破字符串的列表......
说
[a, a, a, b, a, a, b, a, c, a, b, a, a, c, a, c, a]
Run Code Online (Sandbox Code Playgroud)
其中b是标准1,c是标准2
我想把它分成这样的列表:
[a, a, a, [b, a, a, [b, a, c], a, [b, a, a, c], a, c], a]
Run Code Online (Sandbox Code Playgroud)
所以我想处理字符串,这样当我浏览它时,如果项目符合条件1,则打开一个新列表,如果项目符合条件2,则关闭列表并返回上面的一个级别.
我试过做这样的事情,但效果并不好.
def sublist(self, l):
for line in list:
if not b:
self.data.append(line)
else:
sublist(l[line:]) #<----- not sure how to recurse it.
Run Code Online (Sandbox Code Playgroud)
我在stackoverflow之前看到了将列表分成相同大小的列表,但没有一个使用一组条件进入子列表.
我对python很新,所以我不太熟悉数据结构和迭代器工具.
geo*_*org 10
干得好:
lst = "aaabaabacabaacaca"
def go(it):
for x in it:
if x == 'b':
yield [x] + list(go(it))
else:
yield x
if x == 'c':
break
print list(go(iter(lst)))
Run Code Online (Sandbox Code Playgroud)