我有一个清单:
l=['a','>>','b','>>','d','e','f','g','>>','i','>>','>>','j','k','l','>>','>>']
我需要提取 的所有邻居'>>'
并将它们分成组,其中它们之间的元素既不是 也不'>>'
是'>>'
.
对于示例列表,预期结果将是:
[['a', 'b', 'd'], ['g', 'i', 'j'], ['l']]
我已经尝试了很多事情,但是所有简单的事情都以某种方式失败了。目前唯一可行的代码是:
def func(L,N):
outer=[]
inner=[]
for i,e in enumerate(L):
if e!=N:
try:
if L[i-1]==N or L[i+1]==N:
inner.append(e)
elif len(inner)>0:
outer.append(inner)
inner=[]
except IndexError:
pass
if len(inner):
outer.append(inner)
return outer
func(l,'>>')
Out[196]:
[['a', 'b', 'd'], ['g', 'i', 'j'], ['l']]
虽然它似乎有效,但我想知道是否有更好、更清洁的方法来做到这一点?