[Python] 파이썬 리스트 정렬(reverse), 다중 리스트 정렬 하는 방법 예제 및 총 정리: sorted(), sort(), lambda, itemgetter
파이썬 리스트(list) 자료형을 정렬하는 방법에 대해 알아봅니다. sorted()함수를 사용하여 정렬할 수 있습니다.
sorted()함수를 사용하여 정렬시 기본은 오름차순 정렬입니다. 또 다른 방법으로는 튜플 자료형이나 딕셔너리 자료형에서는 사용할 수 없지만 리스트 자료형에서 사용가능한 sort()함수입니다. 내장 함수인 sort()함수를 실행하면 정렬 대상의 리스트는 정렬을 하게 되어 새롭게 저장됩니다. 그리고 리턴 값으로 None를 반환합니다. 다차원 리스트( 2차원 배열, 다중 리스트)에 대한 정렬 방법에 대해서도 알아봅니다. itemgetter모듈을 사용하여 다차원 리스트에 대한 정렬이 가능합니다.
■sort함수를 사용하여 오름차순으로 정렬
list_value = ["파이썬", "코딩", "프로그래밍", "Python", "언어", "자바", "코틀린"]
list_value.sort()
print(list_value)
#실행결과
['Python', '언어', '자바', '코딩', '코틀린', '파이썬', '프로그래밍']
■sort함수를 사용하여 내림차순으로 정렬
sort함수의 인자값 중 reverse 인자의 값을 True로 설정합니다. reverse는 기본 False값을 갖음으로 별도로 인자를 설정하지 않은경우 자동으로 오름차순으로 정렬되는 것입니다.
list_value = ["파이썬", "코딩", "프로그래밍", "Python", "언어", "자바", "코틀린"]
list_value.sort(reverse=True)
print(list_value)
#실행결과
['프로그래밍', '파이썬', '코틀린', '코딩', '자바', '언어', 'Python']
sort함수는 None를 리턴합니다. 새로운 변수에 정렬 결과를 담을 필요가 없는거죠
list_value = ["파이썬", "코딩", "프로그래밍", "Python", "언어", "자바", "코틀린"]
sort_list = list_value.sort()
print(sort_list)
#실행결과
None
■리스트 오름차순 정렬 : sorted()
list_value = ["파이썬", "코딩", "프로그래밍", "Python", "언어", "자바", "코틀린"]
sort_list = sorted(list_value)
print(sort_list)
#실행결과
['Python', '언어', '자바', '코딩', '코틀린', '파이썬', '프로그래밍']
■리스트 내림차순 정렬 : sorted()
sorted()함수의 인자값 중 reverse 인자의 값을 True로 적용하면 내림차순이 됩니다. 기본값은 False입니다.
list_value = ["파이썬", "코딩", "프로그래밍", "Python", "언어", "자바", "코틀린"]
sort_list = sorted(list_value, reverse=True)
print(sort_list)
#실행결과
['프로그래밍', '파이썬', '코틀린', '코딩', '자바', '언어', 'Python']
list_value = ["파이썬", "코딩", "프로그래밍", "Python", "언어", "자바", "코틀린"]
sort_list = sorted(list_value, reverse=True)
for value in sort_list:
print(value)
#실행결과
프로그래밍
파이썬
코틀린
코딩
자바
언어
Python
■람다식(lamda)을 사용하여 정렬하는 방법(오름차순 ASC) : sorted()
람다식에서 x[0]의 의미는 키(key)값 기준으로 정렬을 의미합니다. x[1]은 값을 기준으로 정렬한다는 것을 의미합니다.
list_value = ["파이썬", "코딩", "프로그래밍", "Python", "언어", "자바", "코틀린"]
sort_desc_list = sorted(list_value, key=lambda x: x[0])
print(sort_desc_list)
#실행결과
['Python', '언어', '자바', '코딩', '코틀린', '파이썬', '프로그래밍']
■ 다중 리스트 (2차원 배열)에 대한 정렬방법
from operator import itemgetter
list_value = [["파이썬", "Swift", "프로그래밍", 3, 30.22]
, ["코틀린", "Python", "언어", 29, 5.32]
, ["GW-Basic", "GO", "안드로이드", 5.33, 100]]
print("----정렬전----")
for item in list_value:
print(item)
list_value.sort(key=itemgetter(2))
# 리턴값으로 None를 반환합니다.
print("n----2번째 인덱스를 기준으로 정렬 후---")
for item in list_value:
print(item)
list_value.sort(key=itemgetter(2), reverse=True)
print("n----2번째 인덱스를 기준으로 내림차순(reverse) 정렬 후 ---")
for item in list_value:
print(item)
list_value.sort(key=itemgetter(2, 3))
print("n----2번째와 3번째 인덱스를 기준으로 정렬 후 ---")
for item in list_value:
print(item)
[실행결과]
C:UsersilikeAppDataLocalProgramsPythonPython39python.exe C:/python/Workspace/main.py
----정렬전----
['파이썬', 'Swift', '프로그래밍', 3, 30.22]
['코틀린', 'Python', '언어', 29, 5.32]
['GW-Basic', 'GO', '안드로이드', 5.33, 100]
----2번째 인덱스를 기준으로 정렬 후---
['GW-Basic', 'GO', '안드로이드', 5.33, 100]
['코틀린', 'Python', '언어', 29, 5.32]
['파이썬', 'Swift', '프로그래밍', 3, 30.22]
----2번째 인덱스를 기준으로 내림차순(reverse) 정렬 후 ---
['파이썬', 'Swift', '프로그래밍', 3, 30.22]
['코틀린', 'Python', '언어', 29, 5.32]
['GW-Basic', 'GO', '안드로이드', 5.33, 100]
----2번째와 3번째 인덱스를 기준으로 정렬 후 ---
['GW-Basic', 'GO', '안드로이드', 5.33, 100]
['코틀린', 'Python', '언어', 29, 5.32]
['파이썬', 'Swift', '프로그래밍', 3, 30.22]
Process finished with exit code 0
[REFERENCE]
docs.python.org/ko/3/howto/sorting.html
[파이썬 더 알아보기]
[프로그래밍/Python] – [Python] 파이썬 list, tuple, dictionary,set 예제 및 총정리
[프로그래밍/Python] – [Python] 파이썬 리스트(list) 값 삭제하는 방법 총정리: remove(), del(), clear(), pop()
[프로그래밍/Python] – [Python:자료구조] 파이썬 큐(Queue) , 우선순위 큐(PriorityQueue) 사용방법 및 예제 총정리
[프로그래밍/Python] – [Python] 파이썬 날짜 시간 계산 , 날짜 및 시간 표기법 예제 및 총정리 : datetime, timedelta
[프로그래밍/Python] – [Python] 파이썬 소수점 반올림, 돈 표기 방법 : 천단위 콤마(쉼표) 찍기( 천단위 구분 기호 추가), 숫자 콤마 제거