본문 바로가기
programming/Python

파이썬 리스트 정렬하기 오름차순, 내림차순 List Sort()

by 개코 - 개발과 코딩 2021. 8. 18.

파이썬 리스트 에서 sort() 함수를 사용하면 리스트의 내용을 오름차순 또는 내림차순으로 정렬할 수 있다. 기본 정렬은 오름차순이며, 내림차순의 경우 reverse 인자값을 사용한다. 리스트의 내용을 출력할 때 순서를 정하고자 한다면 sort 함수로 리스트의 내용을 정렬하여 출력할 수 있다.

파이썬 리스트 정렬하기
파이썬 리스트 정렬하기

 

샘플데이터 준비

아이돌 그룹의 데이터를 준비하여 정렬해 보도록 한다.

아이들 그룹의 데이터가 나름대로 정갈하고 활용하기 좋기도 하다.

비교를 위해 한영혼합 리스트의 영문자 리스트 2개를 준비했다.

print('--------------------------------------------------')

vList = ["JYP", "트와이스", "twice", "나연", "정연", "모모", "사나", "지효", "미나", "다현", "채영", "쯔위"]

print("목록 : ", type(vList), len(vList), vList)

print('--------------------------------------------------')

vList = ["JYP", "twice", "twice", "nayeon", "jeongYeon", "momo", "sana", "jihyo", "mina", "dahyun", "chaeyoung", "tsuyu"]

print("목록 : ", type(vList), len(vList), vList)

print('--------------------------------------------------')

연습할 때나 공부할 때는 데이터를 풍부하게 하여 테스트하는 것이 좋다.

눈으로라도 많이 익숙해 두도록 하자.

 

리스트 정렬 오름차순

파이썬 리스트의 정렬 중 오름차순은 기본설정이다.

리스트에 최초 값을 설정할 때 정렬은 설정되지 않는다.

설정을 위해서는 임의로 sort() 함수를 사용해야 한다.

print('--------------------------------------------------')

vList = ["JYP", "트와이스", "twice", "나연", "정연", "모모", "사나", "지효", "미나", "다현", "채영", "쯔위"]
vList.sort()

print("목록 오름차순 : ", type(vList), len(vList), vList)

print('--------------------------------------------------')

vList = ["JYP", "twice", "twice", "nayeon", "jeongYeon", "momo", "sana", "jihyo", "mina", "dahyun", "chaeyoung", "tsuyu"]
vList.sort()

print("목록 오름차순 : ", type(vList), len(vList), vList)

print('--------------------------------------------------')

오름차순으로 잘 정렬된 것을 볼 수 있다.

결과화면으로 알 수 있듯 sort() 함수로 리스트의 내용을 정렬할 수 있으며, 기본설정은 오름차순임을 알 수 있다.

 

리스트 정렬 내림차순

리스트에서 내림차순을 하려면 sort() 함수내 reverse = true 인자를 주면 된다.

어렵지 않다.

print('--------------------------------------------------')

vList = ["JYP", "트와이스", "twice", "나연", "정연", "모모", "사나", "지효", "미나", "다현", "채영", "쯔위"]
vList.sort(reverse = True)

print("목록 내림차순 : ", type(vList), len(vList), vList)

print('--------------------------------------------------')

vList = ["JYP", "twice", "twice", "nayeon", "jeongYeon", "momo", "sana", "jihyo", "mina", "dahyun", "chaeyoung", "tsuyu"]
vList.sort(reverse = True)

print("목록 내림차순 : ", type(vList), len(vList), vList)

print('--------------------------------------------------')

인자값에 reverse = true 인자값을 줌으로써 리스트의 값들이 내림차순으로 정렬된 것을 확인할 수 있다.

자세히 보면 차이점이 보일 것이다.

JYP란 글자가 마지막에 보인다.

내림차순임에도 불구하고 대문자 J 는 소문자 c 보다 뒤에 있다.

 

대문자 소문자 정렬

원본 리스트를 가지고 다시 정렬을 해 보았다.

일부 문자의 앞글자를 대문자로 바꿔서 정렬을 해 보도록 해 보자.

print('--------------------------------------------------')

vList = ["JYP", "Twice", "Nayeon", "JeongYeon", "Momo", "sana", "jihyo", "mina", "dahyun", "chaeyoung", "tsuyu"]
print("목록 : ", type(vList), len(vList), vList)

print('--------------------------------------------------')

vList.sort()
print("정렬 : ", type(vList), len(vList), vList)

print('--------------------------------------------------')

오름차순의 정렬에서 영문 대문자가 영문 소문자보다 앞에 있는 것을 확인할 수 있다.

같은 영문자지만 오름차순을 하면 대문자가 소문자보다 앞에 있음에 주의하자.

이것으로 볼 수 있는 것은 파이썬에서 영문자는 대문자, 소문자가 강하게 구분하고 있다는 점을 알 수 있다.

 

영문자 한글 정렬

그렇다면 한글과 같은 비영어권 문자와의 정렬도 궁금해 질 수 있다.

한글이 포함된 리스트를 정렬해 보도록 하자.

print('--------------------------------------------------')

vList = ["JYP", "트와이스", "twice", "Nayeon", "JeongYeon", "Momo", "사나", "지효", "미나", "dahyun", "chaeyoung", "tsuyu"]

print("목록 : ", type(vList), len(vList), vList)

print('--------------------------------------------------')

vList.sort()
print("정렬 : ", type(vList), len(vList), vList)

print('--------------------------------------------------')

리스트에는 영문자와 한글이 섞여 있고, 영문자는 대소문자가 섞여 있다.

sort() 명령으로 정령을 했을 경우 분명한 차이를 볼 수 있다.

정렬의 경우 영문자나 한글이나 순서대로 정렬이 잘 되는 것을 볼 수 있지만

소문자, 대문자는 구분하는 것을 알 수 있다.

  • 오름차순 : 영문 대문자 < 영문 소문자 < 한글
  • 내림차순 : 한글 > 영문 소문자 > 영문 대문자

반응형

댓글