파이썬을 활용한 데이터 정렬
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)]
댓글남기기