如何从python的邻接列表中返回至少具有n条边的顶点列表?

时间:2019-08-19 12:56:41

标签: python graph

我想编写一个函数friend(my_class, n),该函数返回一个具有最少n个朋友的人的列表,如果没有人至少具有n个朋友,则返回一个空列表。 这是我的代码,有人可以告诉我我做错了吗?

my_class = [[1,2,3],[0,3],[0,4],[0,1],[2]]
def friend(my_class,n):
    for j in range(len(my_class)):
        if my_class[j][n] >= n:
            return my_class[j]
    return ([])

因为我打来电话:

friend(my_class, 2)

它返回[1,2,3]而不是[0,1,2,3]

1 个答案:

答案 0 :(得分:0)

这是基本的调试,您需要学习自己做。

my_class = [[1,2,3],[0,3],[0,4],[0,1],[2]]
def friend(my_class,n):
    for j in range(len(my_class)):
        if my_class[j][n] >= n:
            return my_class[j]
    return ([])

friend(my_class,2)将进入for循环。在j为0的情况下,我们查看my_class [0]并有3个朋友。因为3> 2,我们立即返回。一旦函数执行了返回,就完成了。它不会在for循环中继续。

您找到了至少有2个朋友的第一个节点的邻接表,这就是您返回的结果。如果没有为您做功课,我将无可奈何,但在回答您的问题时,“您做错了什么?”您在函数完成之前执行了return(针对错误的数据)。