exercism-solutions/python/grade-school/grade_school.py
2021-06-08 19:41:01 +03:00

22 lines
648 B
Python

import bisect
from collections import defaultdict
from typing import List, DefaultDict
class School:
def __init__(self) -> None:
self.student_db: DefaultDict[int, List[str]] = defaultdict(list)
def add_student(self, name: str, grade: int) -> None:
bisect.insort(self.student_db[grade], name)
def grade(self, grade_number: int) -> List[str]:
if grade_number not in self.student_db.keys():
return []
return self.student_db[grade_number]
def roster(self) -> List[str]:
return sum([self.grade(grade_number) for grade_number
in sorted(self.student_db)], [])