0
私はディレクトリのリストと生徒のマークと科目のリストを持っています。私がしましたPythonでの辞書リストの集計値で並べ替え
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' Unicode文字列で構成されていない理由?なぜ 'student_2'は' sub_N'ではなく 'subj_N'を持っていますか?なぜ 'print'の代わりに' sys.stdout.write'を使用して改行を防ぐ '、' '、' print(...、end = '') 'で' __future__ import print_function'を使用していますか? –