【问题标题】:Matching values between two Python dictionaries [closed]两个 Python 字典之间的匹配值 [关闭]
【发布时间】:2019-12-02 13:27:32
【问题描述】:

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)

【问题讨论】:

  • 你忘了问问题。
  • 那么任务是什么?
  • 我想弄清楚哪些学生就读于哪个课程?我生成的代码不能正常工作。
  • @Abdullah 反转第二个字典的键和值,并使用字典理解重新创建名称不佳的listA。注意数据类型;你似乎在混合字符串和整数。
  • @Abdullah 你也不应该使用 list 作为变量的名称,因为它是一个预定义的函数。

标签: python list dictionary


【解决方案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)

我希望这会给你一个更好的输出,包括学生 ID 和每个科目

输出:

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

注意:我已修改您提供的 ListA 以确保算法有效且有效。

【讨论】:

  • 它几乎解决了它,我正在尝试在学生 ID 旁边打印学生的姓名。那么它肯定会解决问题
  • 我可以将额外的参数作为名称传递给字典吗?
  • 是的,只要读出 ListB 中的键,最后就可以将其附加到列表中,然后将字典键指向它。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-01-10
相关资源
最近更新 更多