You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python邻接表筛选至少n条边顶点及friend函数错误排查

问题2:排查friend函数的错误

你的代码存在两个核心问题:

  1. 判断逻辑错误:你写的my_class[j][n] >= n是在取第j个人员的第n个好友元素,这和“好友数量”完全无关。正确的判断应该是该人员的好友列表长度,也就是len(my_class[j]) >= n。
  2. 提前返回导致结果不全:你的循环中只要找到第一个符合条件的元素就直接return my_class[j],这只会返回第一个满足条件的好友列表,而不是所有符合要求的人员编号列表。我们需要收集所有符合条件的编号,最后统一返回。

修正后的代码可以这样写:

my_class = [[1,2,3],[0,3],[0,4],[0,1],[2]]
def friend(my_class, n):
    qualified_people = []
    # 遍历每个人员的编号和对应的好友列表
    for person_id, friends in enumerate(my_class):
        if len(friends) >= n:
            qualified_people.append(person_id)
    return qualified_people

# 测试调用
print(friend(my_class, 2))  # 输出:[0,1,2,3]

如果想更简洁,也可以用列表推导式一行搞定:

def friend(my_class, n):
    return [person_id for person_id, friends in enumerate(my_class) if len(friends) >= n]

这样调用friend(my_class, 2)就会返回你预期的[0,1,2,3],如果没有符合条件的人员,函数会返回空列表,完全符合你的需求。


内容的提问来源于stack exchange,提问作者Hannahpham

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.14 06:56:02