[ python ] List 정렬 마스터

김우경·2020년 11월 10일
0

Python에서의 정렬

  • 병합정렬 기반
    → 최악의 경우에도 O(NlogN) 보장
  • 정렬 문제의 유형
    • 정렬 라이브러리로 풀 수 있는 문제
    • 정렬 알고리즘의 원리를 묻는 문제
    • 더 빠른 정렬이 필요한 문제 → 계수정렬 등 다른 알고리즘 이용

sort()

→ 리스트 자체를 변경

a = [1, 10, 5, 7, 6]
a.sort(reverse=True)
print(a)
# [1, 5, 6, 7, 10]
  • default: 오름차순
  • options
    • key: 옵션에 지정된 함수의 결과에따라 정렬
    • reverse: True는 내림차순 정렬

sorted

: 정렬된 리스트를 반환

x = [1 ,11, 2, 3]
y = sorted(x)
print(x, y)
# [1, 11, 2, 3] [1, 2, 3, 11]

응용

  • 문자열 길이에 따라 정렬

    a.sort(key=len)
  • 특정 원소에 대해 정렬

    sorted(student_tuples, key=lambda student: student[2]
  • 리스트의 정렬 여러 조건으로

    answer.sort(key = lambda x : (x[0], x[1], x[2])
profile
Hongik CE

0개의 댓글