파이썬 리스트를 정렬하는 함수는 sort와 reverse가 있습니다. 그 외에도 내장 함수인 sorted가 있는데요. 함수이기 때문에 사용법은 어렵지 않으나 몇 가지 주의할 점이 있습니다. 오늘은 파이썬 정렬 함수-sort, sorted, reverse 사용법과 원하는 순서로 정렬하는 방법에 대해서 알아보겠습니다.

 

 

먼저 아래와 같은 리스트가 있다고 가정해 보겠습니다.

country_lst = ['korea', 'japan', 'usa']

 

 

1. sort / sorted

리스트 클래스에는 sort함수가 정의돼 있기 때문에, 아래와 같이 함수를 실행해서 오름차순으로 정렬할 수 있습니다. sort함수는 다른 입력파라미터는 없습니다.

country_lst.sort()
print(country_lst)

결과) ['japan', 'korea', 'usa']

 

이때 정렬된 값이 저장이 안 될까 봐 아래와 같이 실행하면 안 됩니다. 객체의 값이 바뀌고 반환되는 값은 없기 때문입니다.

country_lst = country_lst.sort()

 

위와 같이 실행하면 country_lst는 빈 값이 됩니다. 또는 파이썬 내장 함수인 sorted함수를 이용해도 됩니다.

sorted(country_lst)

 

이 때는 아래와 같이 변수에 저장해야 값이 유지됩니다.

country_lst = sorted(country_lst)

 

 

2. reverse / sorted

리스트를 내림차순 정렬하고 싶다면 reversed함수를 이용하면 됩니다. 

country_lst.reverse()
print(country_lst)

 

출력하면 아래와 같이 내림차순 된 결과를 확인할 수 있습니다.

['usa', 'korea', 'japan']

 

sorted함수를 이용해서 내림차순 정렬을 할 수도 있는데요. reverse 입력파라미터에 True값을 넣어줍니다.

sorted(country_lst, reverse=True)

 

 

3. 원하는 순서로 정렬하기

원하는 순서로 정렬하는 방법은 여러가지가 있는데요. 일단 순서를 담고 있어야 합니다. 이를 위해 딕셔너리 자료형으로 아래와 같이 정의합니다.

p1 = {"korea": 1, "japan": 3, "usa":2}

 

sorted 함수를 이용하면 key값을 기준으로 정렬됩니다. 참고로 딕셔너리 자료형에는 sort함수가 정의돼 있지 않습니다.

sorted(p1)
결과) ['japan', 'korea', 'usa']

 

정렬 기준을 정의할 수도 있는데요. key라는 입력 파라미터에 정렬 기준을 반환하는 함수를 넣어주면 됩니다. 위의 경우에는 아래와 같이 딕셔너리 키값을 기준으로 정렬할 수 있습니다.

p1 = {"korea": 1, "japan": 3, "usa":2}
sorted(p1, key=p1.get)

결과) ['korea', 'usa', 'japan']

 


리스트는 sort와 reverse 함수를 이용해서 정렬할 수 있지만, sorted함수를 이용하면 자료형에 상관없이 정렬할 수 있습니다. 정렬은 내장 함수인 sorted를 이용하는 것도 좋겠습니다.

  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기