擅长:python、mysql、java
<p>我已经编辑了你的代码。诀窍不是维护局部变量depth,而是使用它将深度传递给函数实例。代码如下:</p>
<pre class="lang-py prettyprint-override"><code>chain = ['a','b',['c','d','e'],'f',['g',['h','j'],'k'],'l']
def extractbylevel(chain, depth=0):
r=[]
for item in chain:
if isinstance(item,str):
r.append((depth,item))
else:
r = r+extractbylevel(item, depth+1)
return r
print(extractbylevel(chain))
#answer
[(0, 'a'), (0, 'b'), (1, 'c'), (1, 'd'), (1, 'e'), (0, 'f'), (1, 'g'), (2, 'h'), (2, 'j'), (1, 'k'), (0, 'l')]
</code></pre>