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

基于共同属性匹配Student与School对象列表并关联的高效实现问询

优化方案

你现在用嵌套循环的方式确实效率很低,尤其是当两个列表数据量变大时,时间复杂度会达到O(n*m)。可以用字典做映射来优化,把整体时间复杂度降到O(n+m),具体实现如下:

首先,将所有学校按value属性存入字典,这样查找对应学校的操作是O(1)的时间复杂度:

# 构建学校字典:key为value属性值,value为对应的School对象
school_dict = {school.value: school for school in School_List}

然后遍历学生列表,直接通过字典找到匹配的学校并添加学生:

for student in Student_List:
    # 检查字典中是否存在对应value的学校
    if student.value in school_dict:
        school_dict[student.value].students.append(student)

处理后,对应value的学生会被正确添加到学校的students列表中:

  • School(1)的students会包含两个Student(1)对象
  • School(3)的students会包含两个Student(3)对象
  • School(5)的students会包含一个Student(5)对象
    其余学校的students列表保持为空,完全符合需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 15:25:16