我有以下问题:
首先,我有一个元组列表,如下所示:
[(1,2),(2,3),(4,5),(5,6),(5,7),(5,8),(6,9),(6,10),(7,11),(12,14)]
为方便起见,假设每个元组中的第一个数字“控制”第二个数字(对于熟悉依赖解析的人来说,第一个数字代表头的索引,而第二个数字代表依赖的索引)。
现在我要创建的是以 an 作为参数的函数int
和上面的列表。该函数必须查找所有将整数参数作为第一个数字的元组并返回第二个数字。然后该函数应该递归地获取这些第二个数字中的每一个,查看它作为第一个数字出现的元组是什么并返回第二个数字。这应该一直持续到无法检索到其他第二个数字。
我将用一个例子来更好地解释它:假设这个函数将数字 5 作为输入。第一个数字为 5 的元组是(5,6),(5,7),(5,8)
; 作为第一个结果,该函数应采用 6,7,8 并将其附加到list
. 现在该函数应该考虑 6,7,8 ,查找它们作为第一个数字 ( (6,9),(6,10),(7,11)
) 出现的元组并返回第二个数字 (9,10,11)。由于 8 在任何元组中都不是第一个数字,因此它的旅程在此阶段结束。返回的最终列表应该是[6,7,8,9,10,11]
.
我已经尝试过类似的方法,但它不起作用:
def foo(start_index, lista_tuples,list_to_return=list()):
indeces=[x[1] for x in lista_tuples if x[0]==start_index]
list_to_return.extend(indeces)
for index in indeces:
foo(index,lista_tuples,list_to_return)
return list_to_return
但它不起作用。有人能帮我吗?