데이터 변환기
Coddy Python 여정의 논리와 흐름 섹션에 포함된 레슨. 78개 중 78번째.
챌린지
어려움분석을 위해 학생 기록 목록을 처리하는 transform_dataset라는 함수를 만드세요.
각 기록은 다음을 포함하는 딕셔너리입니다.
student_id: 학생의 고유 식별자grades: 숫자 성적 목록subjects: 학생이 수강 중인 과목 목록
함수는 다음을 수행해야 합니다.
- 각 학생의 평균 성적을 계산합니다.
- 모든 성적이 70을 초과하는 학생(자격을 갖춘 학생)만 포함합니다. 이 조건을 확인하려면 Python의
all()함수를 사용해야 합니다. - 자격을 갖춘 학생이 수강하는 과목을 요약하여, 각 과목을 수강하는 자격을 갖춘 학생 수를 셉니다.
- 두 개의 키가 있는 딕셔너리를 반환합니다.
qualified_students: 학생 ID를 평균 성적(소수점 이하 2자리로 반올림)에 매핑하는 딕셔너리subject_summary: 과목을 해당 과목을 수강하는 자격을 갖춘 학생 수에 매핑하는 딕셔너리
참고: Python의 all() 함수는 반복 가능한 객체의 모든 요소가 참일 때만 True를 반환합니다. 예를 들어, all(grade > 70 for grade in grades)는 모든 성적이 70을 초과할 때만 True를 반환합니다.
예시 입력:
[
{
"student_id": "S123",
"grades": [88, 92, 85],
"subjects": ["Math", "Science", "History"]
},
{
"student_id": "S124",
"grades": [65, 95, 80],
"subjects": ["Math", "Science", "English"]
},
{
"student_id": "S125",
"grades": [91, 89, 92],
"subjects": ["Math", "Physics", "History"]
}
]예시 출력:
{
'qualified_students': {'S123': 88.33, 'S125': 90.67},
'subject_summary': {'Math': 2, 'Science': 1, 'History': 2, 'Physics': 1}
}직접 해보기
def transform_dataset(data):
# 여기에 코드를 작성하세요
# 단계 1: 각 학생의 평균 성적을 계산하고 자격을 갖춘 학생을 선별합니다
# (모든 성적이 70점을 초과하는 학생)
# 단계 2: 자격을 갖춘 학생들이 수강한 과목의 요약 정보를 만듭니다
# 단계 3: qualified_students와 subject_summary가 포함된 최종 딕셔너리를 반환합니다
pass논리와 흐름의 모든 레슨
직접 연습해 보세요: 온라인 Python 컴파일러