我写了一个递归函数,该函数检查列表中的值并立即存储索引,一旦我获得了所需的值,就使用return语句从该函数中退出,即使它从子函数中退出也是如此不是从父函数中退出。Im缺少的任何东西都限制了它一旦找到值就完全退出该函数。
new_index=[]
def check_with_list(dd,check_value):
global new_index
for index,h in enumerate(dd):
if isinstance(h, list):
new_index.append(index)
check_with_list(h,check_value)
elif h==check_value:
new_index.append(index)
import pdb;pdb.set_trace()
return new_index
else:
new_index=[]
dd=['gcc','fcc',['scc','jhh'],['www','rrr','rrr']]
dd=check_with_list(dd,'rrr')
print dd
答案 0 :(得分:0)
在子列表上调用check_with_list
时,您不会返回结果。
def check_with_list(dd, check_value):
for index,h in enumerate(dd):
if isinstance(h, list):
result = check_with_list(h,check_value)
if result is not None:
return (index,) + result
elif h == check_value:
return (index,)
# value not found
return None
dd=['gcc','fcc',['scc','jhh'],['www','rrr','rrr']]
dd=check_with_list(dd,'rrr')
print dd