1. List Comprehension이란?
List Comprehension이란 파이썬에서 리스트를 생성하는 간결하고 효율적인 방법입니다. 한 줄의 코드로 반복문과 조건문을 활용하여 리스트를 생성할 수 있어, 일반적인 반복문보다 간결하고 가독성이 높아집니다. List Comprehension은 List뿐만 아니라 Set, Dictionary 등의 컬렉션을 생성할 수도 있습니다.
2. List Comprehension의 기본 문법 및 예시 코드
new_list = [expression for item in iterable if condition]
# new_list : 새로 생성될 리스트의 이름
# expression : 각 아이템을 처리하여 리스트에 추가할 표현식
# item : 반복할 대상
# iterable : 반복 가능한 객체 (예 : 리스트, 튜플, 문자열 등)
# condition : item을 걸러내는 조건식
일반적인 코드와 List Comprehension을 적용시킨 간단한 예시를 적어 보면 다음과 같습니다.
# 일반적인 코드 (5줄)
numbers = [1,2,3,4,5]
new_squared_numbers = []
for x in numbers:
new_squared_numbers.append(x**2)
print(new_squared_numbers)
# 결과 : [1, 4, 9, 16, 25]
# List Comprehension 사용 (3줄)
numbers = [1,2,3,4,5]
new_squared_numbers = [x**2 for x in numbers]
print(new_squared_numbers)
# 결과 : [1, 4, 9, 16, 25]
비교해 봤을 때 List Comprehension을 사용한 코드가 훨씬 간결한 것을 확인할 수 있었습니다.
3. 조건문에서의 List Comprehension과 중첩 List Comprehension
먼저 List Comprehension을 조건문과 함께 사용하여 특정 조건을 만족하는 요소만 필터링할 수 있는 코드를 작성해 보았습니다.
numbers = [1,2,3,4,5]
new_even_numbers = [x for x in numbers if x % 2 == 0]
다음은 List Comprehension을 중첩하여 복잡한 데이터 구조를 처리하는 중첩 List Comprehension의 예시 코드입니다.
matrix = [[1,2,3],[4,5,6],[7,8,9]]
new_flattend_matrix = [x for row in matrix for x in row]
# 2차원 리스트인 matrix를 1차원 리스트인 new_flattend_matrix로 변환하여 복잡한 데이터 구조를 간결하게 처리
4. List Comprehension의 장점 및 주의할 점
List Comprehension의 장점
- 반복문과 조건문을 한 줄로 간결하게 표현 가능
- 직관적이고 명확한 표현 방식으로 코드의 가독성 향상
- List Comprehension은 내부적으로 C로 구현되어 있어서 반복문보다 빠른 속도로 데이터 처리 가능
주의사항
- 과도하게 사용할 경우 코드의 가독성이 떨어질 수 있음
- 복잡한 로직을 처리해야 할 경우 일반적인 반복문이 가독성과 유지보수 측면에서 더 좋을 수 있다.
'Python[오늘의 파이썬]' 카테고리의 다른 글
[오늘의 파이썬] 4. rjust 와 ljust / 문자열 정렬! (0) | 2023.06.19 |
---|---|
[오늘의 파이썬] 3. sys.stdin.readline() 과 input()의 사용법 및 차이점 (0) | 2023.06.18 |
[오늘의 파이썬] 2. Dynamic Programming / 동적 계획법! (0) | 2023.06.07 |