파이썬을 활용한 데이터 정렬


1. 데이터 정렬


1.1 데이터 정렬 함수: sort() vs sorted()


1.1.1 list.sort()

  • 리스트를 제자리(in-place)에서 수정하는 리스트 내장 메서드
  • 결과값을 반환하지 않는다.
  • list.sort()로 사용
  • 해당 메서드는 리스트에 대해서만 정의되어 있다.


1.1.2 sorted()

  • 이터러블로부터 새로운 정렬된 리스트를 생성하는 내장 함수
  • 정렬된 리스트를 반환한다.
  • sorted(list) 로 사용
  • 리스트 외의 모든 이터러블을 받아들인다.


1.2. reverse 매개변수

  • 오름차순, 내림차순 지정


1.2.1 sorted(데이터, reverse=False)

  • 오름차순 정렬
  • 기본값
data = [10, 3, 5, 7, 24, 1, 49]
sorted(data)
[1, 3, 5, 7, 10, 24, 49]
data = [10, 3, 5, 7, 24, 1, 49]
sorted(data, reverse=False)
[1, 3, 5, 7, 10, 24, 49]


1.2.2 sorted(데이터, reverse=True)

  • 내림차순 정렬
data = [10, 3, 5, 7, 24, 1, 49]
sorted(data, reverse=True)
[49, 24, 10, 7, 5, 3, 1]


1.3. 키 함수

  • key 매개 변수의 값은 단일 인자를 취함
  • 정렬 목적으로 사용할 키를 반환하는 함수여야 한다.


1.3.1 사용 예시 1

  • 나이가 적은 순서대로 정렬 (오름차순)
# 키 함수 사용 예시 : 나이순으로 정렬
student_tuples = [
    ('john', 'A', 15), # 이름 / 혈액형 / 나이
    ('jane', 'B', 12),
    ('dave', 'B', 10),
]

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


1.3.2 사용 예시 2

  • 무게대비 가치가 큰 순서대로 정렬 (내림차순)
data_list = [
  (10, 10),  # 무게 / 가치
  (15, 12),
  (20, 10),
  (25, 8),
  (30, 5)
]

sorted(data_list, key = lambda x: x[1]/x[0], reverse=True)
[(10, 10), (15, 12), (20, 10), (25, 8), (30, 5)]


1.4 참고 링크

댓글남기기