Python/Python
[Python] 12. sort()메소드와 sorted()함수
구름솜:D
2024. 9. 8. 15:56
728x90
sort() 메소드
sort()는 메소드로 특정 자료(리스트)에 대해 정렬 기능을 수행
sort(): 오름차순 정렬 / sort(reverse = True): 내림차순 정렬
메소드는 반환값이 없기 때문에 기존 객체(리스트)를 정렬하여 기존객체에 저장
ex_list = ['B','D','A','E','C']
ex_list.sort() #['A', 'B', 'C', 'D', 'E']
ex_list.sort(reverse=True) #['E', 'D', 'C', 'B', 'A']
- 기존 ex_list의 값이 정렬됨
sorted() 함수
sorted()는 함수로 iterable한 모든 자료형(문자열, 리스트, 딕셔너리 등)에 정렬 기능을 수행
sorted(): 오름차순 정렬 / sorted(reverse = True): 내림차순 정렬
함수는 반환값이 존재하기 때문에 기존 객체는 유지하고 기존객체를 정렬한 새로운 객체 생성
ex_list = ['B','D','A','E','C']
sorted(ex_list) #['A', 'B', 'C', 'D', 'E']
sorted_list = sorted(ex_list) #['A', 'B', 'C', 'D', 'E']
sorted_list2 = sorted(ex_list, reverse=True) #['E', 'D', 'C', 'B', 'A']
- 기존 ex_list의 값은 변하지 않고 정렬된 리스트는 새로운 sorted_list 객체에 생성
sorted()는 함수로 괄호안에 매개변수를 호출 가능, key 매개변수를 호출해서 특정기준으로 요소를 정렬할 수 있음
1) 절댓값을 기준으로 정렬 (key = abs)
ex_list = [3, -1, 0, 2, -4]
sorted_list = sorted(ex_list, key=abs) #[0, -1, 2, 3, -4]
2) 문자열의 길이를 기준으로 정렬 (key = len)
ex_list = ['바나나', '딸기', '귤', '파인애플']
sorted_list = sorted(ex_list, key=len) #['귤', '딸기', '바나나', '파인애플']
3) 람다함수를 사용해서 정렬 (key = lambda x: 계산식)
ex_list = [['짱구', 'D'],['유리', 'B'],['철수', 'A'],['맹구', 'A'],['훈이', 'C']]
sorted_name = sorted(ex_list, key = lambda ex_list : ex_list[0])
sorted_score = sorted(ex_list, key = lambda ex_list : ex_list[1])
#ex_list
[['짱구', 'D'], ['유리', 'B'], ['철수', 'A'] ,['맹구', 'A'], ['훈이', 'C']]
#sorted_name
[['맹구', 'A'], ['유리', 'B'], ['짱구', 'D'], ['철수', 'A'], ['훈이', 'C']]
#sorted_score
[['철수', 'A'], ['맹구', 'A'], ['유리', 'B'], ['훈이', 'C'], ['짱구', 'D']]