파이썬python 정렬을 위한 sorted 함수!
계속 잘 따라오고 계신지요?!
오늘은 람다 함수에 이어서 정렬을 위한 sorted 함수에 대해 배워볼까 합니다.
2017/06/08 - 파이썬python 람다lambda 함수라는건?
2017/06/04 - 파이썬python 성적 처리 프로그램을 짜자! - 학생 데이터 입력2
정렬을 위한 함수를 배우는 이유는 당연히 알고 계시겠지요?
학생들의 성적을 처리한 후에 등수별로 오름차순으로 정렬하기 위해서입니다!
sort란 정렬하다라는 뜻이며 데이터를 정렬할 때 쓰는 함수이지요~!
쓰는 방법은 간단합니다.
ex) data = [ 145, 22, 55, 66, 765, 23, 1]
일때
sortde_data = sorted(data)
한 줄을 추가해 주면
sortde_data 를 입력했을 시
[1, 22, 23, 55, 66, 145, 765]
로 정렬되어서 나오는 겁니다.
어때요, 정말 쉽죠?!
하나 더,
sortde_data = sorted(data, reverse=True)
라고 reverse=True를 덧붙여서 입력한다면
sortde_data 는
[765, 145, 66, 55, 23, 22, 1]
이라는 내림차순으로 정렬이 됩니다.
def main():
students = [{'id' : '1', 'name' : 'kim', 'kor' : 60, 'eng' : 30, 'math' : 80, 'total' : 0, 'avg' : 0.0, 'ranking' : 0},
{'id' : '2', 'name' : 'non', 'kor' : 50, 'eng' : 40, 'math' : 70, 'total' : 0, 'avg' : 0.0, 'ranking' : 0},
{'id' : '3', 'name' : 'as', 'kor' : 90, 'eng' : 90, 'math' : 100, 'total' : 0, 'avg' : 0.0, 'ranking' : 0}]
for student in students:
student['total'] = student['kor'] + student['eng'] + student['math']
student['avg'] = student['total'] / 3
for student in students:
print(student)
자아 그렇다면 지금까지 짰었던 학생 성적 입력 프로그램에 대입시키면 어떻게 될까요?!
def main():
students = [{'id' : '1', 'name' : 'kim', 'kor' : 60, 'eng' : 30, 'math' : 80, 'total' : 0, 'avg' : 0.0, 'ranking' : 0},
{'id' : '2', 'name' : 'non', 'kor' : 50, 'eng' : 40, 'math' : 70, 'total' : 0, 'avg' : 0.0, 'ranking' : 0},
{'id' : '3', 'name' : 'as', 'kor' : 90, 'eng' : 90, 'math' : 100, 'total' : 0, 'avg' : 0.0, 'ranking' : 0}]
for student in students:
student['total'] = student['kor'] + student['eng'] + student['math']
student['avg'] = student['total'] / 3
sorted_students = sorted(students, key = lambda x : x['total'], reverse=True)
count = 1
for student in sorted_students:
student['ranking'] = count
count = count + 1
for student in sorted_students:
print(student)
어느부분이 달라졌는지 아시겠죠?!
총점의 크기가 높은 순으로 정렬하게 만들고
동시에 count를 써서 ranking 도 출력되게 만들었습니다.
이정도면, 이제 거의 완성된거나 마찬가지지요~
그럼 다음시간에는 파일로 이 프로그램을 출력하는 방법에 대해서 알아보겠습니다!
-
'IT 이것저것 > 파이썬python' 카테고리의 다른 글
파이썬python 외전 - 윤년 계산기 (0) | 2017.06.17 |
---|---|
파이썬python 성적 처리 프로그램을 짜보자 - 파일 처리 방법 (0) | 2017.06.17 |
파이썬python 람다lambda 함수라는건? (0) | 2017.06.08 |
파이썬python 성적 처리 프로그램을 짜자! - 학생 데이터 입력2 (0) | 2017.06.04 |
파이썬python 성적 처리 프로그램을 짜자! ~ 학생 데이터 입력 (0) | 2017.06.01 |
댓글