У меня есть случай, когда я хотел бы сравнить данные между словарями, вложенными в другой словарь. Все вложенные словари имеют одинаковый формат;это выглядит так:
students = {"student_1": {"id":1009, "first_name": "Alex", "last_name": "Robertson",
"Assignments":[("Assignment_1",3),("Assignment_2", 4),
("Assignment_3", 2), ("Assignment_4", 4)]},
"student_2" :{"id":2009, "first_name": "Dave", "last_name": "Davidson",
"Assignments":[("Assignment_1",2),("Assignment_2", 1),
("Assignment_3", 2), ("Assignment_4", 4)]},
"student_3" :{"id":3009, "first_name": "Hayden", "last_name": "Miles",
"Assignments":[("Assignment_1",1),("Assignment_2", 1),
("Assignment_3", 1), ("Assignment_4", 1)]},
"student_4" :{"id":4009, "first_name": "Randy", "last_name": "Bacon",
"Assignments":[("Assignment_1",2),("Assignment_2", 2),
("Assignment_3", 2), ("Assignment_4", 4)]},
"student_5" :{"id":5009, "first_name": "Katrina", "last_name": "Lopez",
"Assignments":[("Assignment_1",2),("Assignment_2", 1),
("Assignment_3", 2), ("Assignment_4", 3)]},
"student_6" :{"id":6009, "first_name": "Tessa", "last_name": "Franklin",
"Assignments":[("Assignment_1",1),("Assignment_2", 4),
("Assignment_3", 2), ("Assignment_4", 4)]}}
Что я хотел бы сделать, это указать конкретное назначение (строки в кортежах) и извлечь все шесть классов, связанных с этим назначением, и сопоставить его с идентификационным номером. студента. Например, если бы я хотел оценки для Assignment_1, результатом был бы список кортежей с идентификатором и оценкой из Assignment_1 или упорядоченный список student_ #. Любая помощь очень ценится, вот что я пытался использовать:
def highest_n_grades(dict, tuple, int):
save_data = []
for d in dict:
for k in d:
if k == "Assignments":
if [0] == tuple:
data = d["id"],d["first_name"],d["last_name"],k[1]
save_data.append(data)
return save_data
Код выполняется, но возвращает только пустые скобки.