0
나는 학생 목록과 주제 목록과 목록을 가지고있다. 나는했습니다파이썬에서 사전 목록 집계 값으로 정렬
Student sub_1 sub_2 sub_3 sub_4 sub_5 sub_6
student_3 81 0 67 0 72 0
student_1 51 72 0 62 0 0
student_2 45 56 0 0 0 71
논리 : 나는 총을 기준으로 학생 기록을 정렬하고 0
student_data=[{u'sub_1': 51, u'sub_2': 72, u'sub_4': 62, 'user': u'student_1'}, {u'subj_1': 45, u'subj_2': 56, u'subj_6': 71, 'user': u'student_2'}, {u'sub_1': 81, u'sub_3': 67, u'sub_5': 72, 'user': u'student_3'}]
subjects=['sub_1','sub_2','sub_3','sub_4','sub_5','sub_6']
와 학생에 대한 예상 출력을 찾을 수없는 주제를 교체하고 싶습니다 다음 코드에서 사용되는 것은 좋지 않습니다. 내 최종 결과물은 총계를 기준으로 학생 기록을 정렬하는 것과 같습니다.
샘플 코드 : 그 대상이 존재하지 않는 경우
>>> for student in student_data:
... sys.stdout.write('\n' + '{:20s}'.format(student['user']))
... del student['user']
... for k, v in student.items():
... for i in subjects:
... if i == k:
... sys.stdout.write('{:5s}'.format(str(v)))
... else:
... sys.stdout.write('{:5s}'.format(str("0")))
...
student_1 0 72 0 0 0 0 51 0 0 0 0 0 0 0 0 62 0 0
student_2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
student_3 0 72 0 0 0 0 0 0 67 0 0 0 81 0 0 0 0 0 >>>
왜'유니 코드 문자열로 만들어지지 subjects'입니까? 왜'student_2'는'sub_N' 대신'subj_N'을 사용합니까? 왜 당신은'print' 대신에'sys.stdout.write'를 사용하고,'print'(..., end = '')'로''__future__ import print_function'을 사용합니까? –