检查列表列表的子列表是否包含与另一个列表的子列表相同的项

问题描述 投票:0回答:1

我有一个列表的[[courses_per_semester列表,其子列表如下]

[[['CS105', 'ENG101', 'MATH101', 'GER'], ['ENG102', 'CS230', 'MATH120', 'GER'], ['CS205', 'FREE'], ['GER'], ['CS106', 'CS215', 'CS107', 'ENG204'], ['GER', 'MATH220', 'CS300', 'CS206'], ['CS306', 'GER'], ['FREE'], ['CS312', 'CS450', 'GER', 'CS321', 'FREE'], ['CS325', 'GER', 'CS322', 'MAJOR'], ['CS310', 'STAT205'], [''], ['CS443', 'CS412', 'CS421', 'GER'], ['CS444', 'FREE', 'FREE', ''], ['', '']], [['CS105', 'MATH101', 'GER', 'ENG101'], ['ENG102', 'MATH120', 'CS230', 'GER'], ['CS205', 'FREE'], ['GER'], ['CS106', 'CS215', 'CS107', 'ENG204'], ['GER', 'MATH220', 'CS300', 'CS206'], ['CS306', 'GER'], ['FREE'], ['CS312', 'CS450', 'GER', 'CS321', 'FREE'], ['CS325', 'GER', 'CS322', 'MAJOR'], ['CS310', 'STAT205'], [''], ['CS443', 'CS412', 'CS421', 'GER'], ['CS444', 'FREE', 'FREE', ''], ['', '']],....]

grades_per_semester

列表列表,其中的子列表如下:[[[3.67, 3.67, 4.0, 3.0], [3.0, 3.0, 3.0, 3.67], [4.0, 3.67], [3.67], [3.0, 3.33, 4.0, 3.67], [3.67, 3.33, 3.0, 4.0], [3.33, 3.67], [3.33], [4.0, 3.0, 3.0, 3.0, 4.0], [3.67, 3.33, 3.33, 3.67], [3.0, 3.67], [3.33], [4.0, 3.33, 3.67, 3.33], [3.67, 3.0], []], [[3.67, 3.67, 4.0, 3.0], [3.0, 3.0, 3.0, 3.67], [4.0, 3.67], [3.67], [3.0, 3.33, 4.0, 3.67], [3.67, 3.33, 3.0, 4.0], [3.33, 3.67], [3.33], [4.0, 3.0, 3.0, 3.0, 4.0], [3.67, 3.33, 3.33, 3.67], [3.0, 3.67], [3.33], [4.0, 3.33, 3.67, 3.33], [3.67, 3.0], []],...]

课程列表

是学生获得的课程,每个列表的子列表表示每个学生组成的课程的[[组合,而成绩列表则包含相应的成绩培训班。总的来说,我有1500个列表,并且每个子列表每次都有相同长度的子列表。我要做的是创建一个函数,该函数检查每个列表的子列表是否包含与另一个列表的各个子列表相同的项(即使顺序不同)。如果他们这样做了,那么我想每次将这些列表放在另一个列表中。更准确地说,我想根据一个学生与另一个学生是否具有相同的课程顺序来将所有列表分组,这意味着子列表包含完全相同的课程,即使它们在课程中的顺序不同。这样,我将能够基于相同的课程来计算每个学期的平均GPA和其他所需材料,并了解新学生应遵循的课程路径。 例如,从提供的课程列表中,您可以看到

两个列表的第二子列表具有相同的课程,但顺序不同

。这意味着他们在同一学期修了相同的课程。我只想要整个清单。 尽管我进行了很多搜索,但我找不到相关的内容,但我也不知道如何开始这样的事情,所以这就是为什么我没有提供代码的原因。
python list compare sublist
1个回答
0
投票
s1 = set(['CS105', 'ENG101', 'MATH101', 'GER']) s2 = set(['CS105', 'GER', 'ENG101', 'MATH101']) s1 == s2 > True

阅读有关集here的更多信息

要将课程列表转换为设置,您可以使用list comprehensions

course_sets_per_semester = [[set(courses) for courses in sublist] for sublist in courses_per_semester ]

然后您需要做的就是检查每个学生的子列表是否相同。

© www.soinside.com 2019 - 2024. All rights reserved.