구보현 블로그

Sorting in Python

20180824

Sorting in Python

sorting function

  1. list.sort()
  • list 에서만 사용할 수 있다.
  • None 반환한다. in-place 로 입력 리스트 내부에서 정렬이 이루어진다.
  • original list 가 필요하지 않다면, sorted 보다 sort 를 쓰는 것이 좀 더 효율적이다.
  1. sorted(any iteralble)
  • iterable 자료 구조형에 모두 사용할 수 있다.
  • sorted 된 새로운 리스트를 반환한다.

list.sort()sorted()key 라는 매개변수로 sort 하기 전에 각 요소에 대해 호출 할 함수를 지정할 수 있다.

student_tuples = [
    ('john', 'A', 15),
    ('jane', 'B', 12),
    ('dave', 'C', 10),
]
sorted(student_tuples, key=lambda student: student[2])

# 나이로 sort 하기  [('dave', 'B', 10), ('jane', 'B', 12), ('john', 'A', 15)]

내림차순 정렬

reverse default value False

sorted(student_tuples, key=lambda student: student[2], reverse=True)
# 내림차순 정렬 [('john', 'A', 15), ('jane', 'B', 12), ('dave', 'C', 10)]

람다 사용하기

람다는 한 줄로 함수를 작성하는 방법이다. 식 형태로 되어 있다고 해서 람다 표현식이라고 부른다. 람다는 함수를 간편하게 작성할 수 있어서 다른 함수의 인수로 (map, reduce, filter ... )넣을 때 주로 사용한다.

fruites 리스트 재정렬하기

apple 이면 리스트 앞으로 정렬하기

fruites = ['apple', 'banana', 'orange','apple']
fruites.sort(key=lambda fruite : 0 if fruite == 'apple' else 1 )
print(fruites)
# ['apple', 'apple', 'banana', 'orange']

참고자료

Python Documentation/ Sorting How To