[파이썬] Python 리스트 (다중 리스트) 정렬(sorted, reverse, lambda) 하는 방법

[파이썬] Python 리스트 (다중 리스트) 정렬(sorted, reverse, lambda) 하는 방법

파이썬에서 리스트(list) 자료형을 정렬하는 방법에 대해 알아봅니다.

sorted()함수를 사용하여 정렬할 수 있습니다.

sorted()함수를 사용하여 정렬시 기본은 오름차순 정렬입니다. 또 다른 방법으로는 튜플 자료형이나 딕셔너리 자료형에서는 사용할 수 없지만 리스트 자료형에서 사용가능한 sort()함수입니다. 내장 함수인 sort()함수를 실행하면 정렬 대상의 리스트는 정렬을 하게 되어 새롭게 저장됩니다. 그리고 리턴 값으로 None를 반환합니다. 다차원 리스트( 2차원 배열, 다중 리스트)에 대한 정렬 방법에 대해서도 알아봅니다. itemgetter모듈을 사용하여 다차원 리스트에 대한 정렬이 가능합니다.

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


■sort함수를 사용하여 오름차순으로 정렬

list_value = ["파이썬", "코딩", "프로그래밍", "Python", "언어", "자바", "코틀린"]
list_value.sort()
print(list_value)


#실행결과
['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

리스트 오름차순 정렬 : sorted()

list_value = ["파이썬", "코딩", "프로그래밍", "Python", "언어", "자바", "코틀린"]
sort_list = sorted(list_value)
print(sort_list)


#실행결과
['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', '언어', '자바', '코딩', '코틀린', '파이썬', '프로그래밍']

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:\Users\ilike\AppData\Local\Programs\Python\Python39\python.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


카테고리의 다른 글
error: Content is protected !!