파이썬 리스트 정렬과 필터링, 데이터 가공의 기본
데이터 가공은 현대 프로그래밍에서 매우 중요한 역할을 합니다. 특히 파이썬의 리스트는 데이터를 정렬하고 필터링하는 데 강력한 기능을 제공합니다. 이 글에서는 파이썬 리스트를 활용하여 데이터를 정렬하고 필터링하는 기본부터 고급 방법까지를 단계별로 살펴봅니다.
목차
- 리스트 기본 개념
- 리스트 정렬: 기본 및 사용자 정의
- 리스트 필터링: 조건에 따른 데이터 추출
- 람다를 활용한 정렬과 필터링
- 실제 사례로 배우는 정렬과 필터링
- 성능 최적화를 위한 팁
- 예제 코드로 정리하기
1. 리스트 기본 개념
파이썬의 리스트(List)는 순서가 있는 가변 데이터 구조로, 다양한 데이터 타입을 저장할 수 있습니다.
- 리스트는 대괄호(
[]
)를 사용하여 정의합니다. - 인덱스를 이용해 리스트의 특정 요소에 접근할 수 있습니다.
- 데이터를 추가, 삭제, 수정하는 기능을 제공합니다.
# 리스트 생성
numbers = [3, 1, 4, 1, 5, 9]
print(numbers[0]) # 출력: 3
2. 리스트 정렬: 기본 및 사용자 정의
파이썬의 리스트 정렬은 sort()
메서드와 sorted()
함수를 사용하여 수행됩니다.
기본 정렬
sort()
: 리스트 자체를 정렬합니다(원본 변경).sorted()
: 정렬된 새로운 리스트를 반환합니다.
numbers = [3, 1, 4, 1, 5, 9]
numbers.sort() # 원본 리스트 정렬
print(numbers) # 출력: [1, 1, 3, 4, 5, 9]
numbers = [3, 1, 4, 1, 5, 9]
sorted_numbers = sorted(numbers) # 새로운 리스트 생성
print(sorted_numbers) # 출력: [1, 1, 3, 4, 5, 9]
사용자 정의 정렬
key
매개변수를 사용하여 사용자 정의 기준에 따라 정렬할 수 있습니다.
names = ["Alice", "Bob", "Charlie"]
names.sort(key=len) # 문자열 길이에 따라 정렬
print(names) # 출력: ['Bob', 'Alice', 'Charlie']
3. 리스트 필터링: 조건에 따른 데이터 추출
리스트 필터링은 특정 조건에 부합하는 데이터를 추출하는 데 사용됩니다. 이를 위해 for
문이나 filter()
함수를 사용할 수 있습니다.
numbers = [3, 1, 4, 1, 5, 9]
filtered = [num for num in numbers if num > 3]
print(filtered) # 출력: [4, 5, 9]
4. 람다를 활용한 정렬과 필터링
람다 표현식을 사용하면 간결하게 정렬과 필터링 기준을 정의할 수 있습니다.
numbers = [3, 1, 4, 1, 5, 9]
filtered = list(filter(lambda x: x > 3, numbers))
print(filtered) # 출력: [4, 5, 9]
5. 실제 사례로 배우는 정렬과 필터링
정렬과 필터링은 다음과 같은 경우에 활용될 수 있습니다:
- 학생 성적을 오름차순 또는 내림차순으로 정렬
- 특정 연령 이상의 사용자만 필터링
- 제품 가격 순 정렬 및 조건에 따른 필터링
6. 성능 최적화를 위한 팁
- 대규모 데이터의 경우
key
매개변수 사용을 고려 - 필터링 시 리스트 컴프리헨션이 더 빠른 경우가 많음
- 정렬이 빈번한 경우 데이터 구조를 재설계
7. 예제 코드로 정리하기
다음은 정렬과 필터링을 함께 사용하는 예제입니다.
products = [
{"name": "Laptop", "price": 800},
{"name": "Phone", "price": 600},
{"name": "Tablet", "price": 400}
]
# 가격순 정렬
sorted_products = sorted(products, key=lambda x: x["price"])
print(sorted_products)
# 500 이상의 가격 필터링
filtered_products = list(filter(lambda x: x["price"] > 500, products))
print(filtered_products)
'프로그래밍 언어 > 파이썬' 카테고리의 다른 글
complex 데이터 타입으로 파이썬에서 복소수 계산하기 (0) | 2025.02.10 |
---|---|
Python에서 문자열(str) 처리하기, 함수와 메서드 비교 (0) | 2025.02.04 |
Python에서 bool 타입의 중요성, 제어 흐름과 조건 처리 (0) | 2025.01.27 |
파이썬에서 복소수 사용하기, complex 타입 (0) | 2025.01.22 |
Python str, 슬라이싱과 문자열 조작의 비밀 (0) | 2025.01.16 |