假设我有一个列表:
>>> nested=[[1, 2], [3, [4]]]
我正在尝试编写一个函数,当我查找数字4
时,它将返回[1,1,0]
。如果在列表中没有指定的元素,则返回空列表[]
。
Nested
可以有任何结构,因此我认为一些递归函数最好,但我很难控制其深度和广度。
以下代码不是可工作的代码,但基本上是我考虑的思路:
def locate(x,element,loc=[0],counter=0):
for c,i in enumerate(x):
if isinstance(i,list):
locate(i,loc+[0],counter+1)
else:
loc[counter]=c
if i==element: return loc
函数调用应该是这个样子的:
>>> locate(nested,4)
[1,1,0]
递归函数可能不是最佳解决方案,但这只是我的尝试。