在使用字典fiddling之后,我得出结论,我需要一个允许我进行n to n查找的数据结构。一个例子是:一个课程可以被几个学生访问,每个学生可以访问几个课程。
什么才是实现这一目标的最有效的方法?只有500名学生和100门课程,才能以身作则。所以我想避免使用真正的数据库软件。
谢谢!

最佳答案

由于你的工作集很小,我认为在课程中只将学生ID存储为列表是没有问题的。在一个班里找学生就像做

course.studentIDs

要查找学生所在的课程,只需遍历这些课程并找到ID:
studentIDToGet = "johnsmith001"
studentsCourses = list()
for course in courses:
    if studentIDToGet in course.studentIDs:
        studentsCourses.append(course.id)

你还有别的办法你可以有一个studentIDs字典映射到courseIDs或者两个字典-一个映射studentIDs:courseIDs,另一个映射courseIDs:studentIDs-更新后,互相更新。
我为之编写代码的实现可能是最慢的,这就是为什么我提到您的工作集足够小,不会有问题。我提到的其他实现,但没有显示的代码,将需要一些更多的代码,使他们的工作,只是不值得的努力。

09-09 18:58