-
231115 온라인 강의 듣는날패스트캠퍼스 부트캠프 학습일지 2023. 11. 13. 22:58
# 테스트용 데이터 test_students = [ {'name': 'Alice', 'grades': [80, 90, 75]}, {'name': 'Bob', 'grades': [92, 88, 94]}, {'name': 'Charlie', 'grades': [85, 78, 92]}, {'name': 'David', 'grades': [95, 89, 88]}, ] # 최댓값 담을 변수 max_score = 0 # 과목별 성적 누계 리스트 scores = [0] * 3 # 평균 성적 계산 print(test_students) name_list = [] for key, student in enumerate(test_students): # 평균 구해서, key average로 추가해서 넣기 student_score_average = sum(student['grades']) / len(student['grades']) test_students[key]['average'] = student_score_average # 평균 최대점 구하고 가장 점수 높은 학생 이름을 max_student_name에 저장 if student_score_average > max_score: max_score = student_score_average max_student_name = student['name'] # 과목별 점수 누적 for score_key, score in enumerate(student['grades']): scores[score_key] += score print(test_students) print(f'평균성적이 가장 높은 학생의 이름은 {max_student_name}입니다.') print(f'과목별 총점은 {scores}입니다.') avg_scores = list(map(lambda i: i / len(test_students), scores)) print(f'과목별 평균은 {avg_scores}입니다.')
이게 내가 짠 코드인데
test_students = [ {'name': 'Alice', 'grades': [80, 90, 75]}, {'name': 'Bob', 'grades': [92, 88, 94]}, {'name': 'Charlie', 'grades': [85, 78, 92]}, {'name': 'David', 'grades': [95, 89, 88]}, ] # Calculate average and find student with the highest average max_student = max(test_students, key=lambda student: sum(student['grades']) / len(student['grades'])) # Calculate total scores for each subject subject_scores = [sum(score) for score in zip(*(student['grades'] for student in test_students))] # Calculate average scores for each subject avg_subject_scores = [total / len(test_students) for total in subject_scores] print(f'평균성적이 가장 높은 학생의 이름은 {max_student["name"]}입니다.') print(f'과목별 총점은 {subject_scores}입니다.') print(f'과목별 평균은 {avg_subject_scores}입니다.')
gpt는 이러한 프로그램으로 개선했다고 주장한다.
일단 결이 좀 다르긴하다, 내 코드는 각 학생의 average를 test_student 의 각 딕셔너리에 집어넣는 부분이 있고 gpt의 코드에는 그 부분이 생략되어있다. 따라서 완전히 같은 코드라고 볼 수는 없다.
그리고 문제의 이부분인데..
# Calculate total scores for each subject subject_scores = [sum(score) for score in zip(*(student['grades'] for student in test_students))]
chat gpt에게 일단 설명을 부탁했다.
https://chat.openai.com/share/8f0b807d-eeb8-4ca6-9dca-714ff7865982
ChatGPT
A conversational AI system that listens, learns, and challenges
chat.openai.com
이건 그 대화내용, 양이 많다.
행/렬 전환문제는 코테에서도 단골 소재긴했다. 이걸 이중 for문으로 길이 len으로 다 불러가면서 하려면 고통인데,
packing, unpacking으로 해결하니 한결 간단해지는 느낌, 여전히 희미하게 이해한 것 같지만 써먹다보면 좀 더 잘 알게되겠지.. 화이팅!!
'패스트캠퍼스 부트캠프 학습일지' 카테고리의 다른 글
231130 sql 시작! (1) 2023.12.08 231116 python 계속 (1) 2023.11.13 231114 파이썬 문법 종료! (1) 2023.11.13 231113 python 계속 (0) 2023.11.13 231109~10 파이썬 계속! (0) 2023.11.10