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']]