在两个Python字典之间匹配值

时间:2019-12-02 13:27:32

标签: python list dictionary

dictGroupMembers是一本字典,其中的键代表课程代码,其值包含该课程中注册的学生ID的列表。

dictCourseMembers是一本字典,其中包含学生姓名的密钥和该学生ID的值。

我正在尝试创建课程代码列表或词典,以及加入这些课程的学生的姓名。

我当前的代码如下:

dictGroupMembers= {11784: [264, 265, 266], 11794: [], 11795: [], 11796: [], 11834: []}
dictCourseMembers= {'Student, Dummy01': '265', 'Student, Dummy02': '264', 'Student, Dummy03': '266', 'TestStudent, Van de, Eddy': '49076'}

list=[]
for i in dictGroupMembers.values():
    for j in dictCourseMembers.values():
        for b in j:
            if i==b:
              list[i].append
print(list)

1 个答案:

答案 0 :(得分:-1)

ListA= {11784: [264, 265, 266], 11794: [264], 11795: [264,266], 11796: [265,266], 11834: [265,264]}
ListB= {'Student, Dummy01': '265', 'Student, Dummy02': '264', 'Student, Dummy03': '266', 'TestStudent, Van de, Eddy': '49076'}

dict1={}

for student_id in ListB.values():
    subject_list=[]
    for subject,student_list in ListA.items():
        for student in student_list:
            if student_id==str(student):
                subject_list.append(subject)
    dict1[student_id]=subject_list

print(dict1)

我希望这将为您提供带学生证和每个科目的更好的成绩

输出:

{'265': [11784, 11796, 11834], '264': [11784, 11794, 11795, 11834], '266': [11784, 11795, 11796], '49076': []}

注意:我已经修改了您提供的ListA,以确保算法起作用并且起作用。