파이썬 리스트 에서 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() 명령으로 정령을 했을 경우 분명한 차이를 볼 수 있다.
정렬의 경우 영문자나 한글이나 순서대로 정렬이 잘 되는 것을 볼 수 있지만
소문자, 대문자는 구분하는 것을 알 수 있다.
- 오름차순 : 영문 대문자 < 영문 소문자 < 한글
- 내림차순 : 한글 > 영문 소문자 > 영문 대문자
'programming > Python' 카테고리의 다른 글
파이썬 리스트 합치기 방법 Python List Join (0) | 2021.08.20 |
---|---|
파이썬 리스트 복사하기 Python List Copy (0) | 2021.08.19 |
파이썬 컴프리헨션 기존의 목록을 재가공하여 새 목록을 만듬 Python Comprehension (0) | 2021.08.16 |
파이썬 리스트 반복문 사용 Python List For While Comprehension (0) | 2021.08.15 |
파이썬 리스트 값 삭제하기 remove pop clear del (0) | 2021.08.14 |
댓글