파이썬 리스트 컴프리헨션
IT 위키
AlanTuring (토론 | 기여)님의 2025년 4월 6일 (일) 14:28 판 (새 문서: 파이썬 리스트 컴프리헨션(list comprehension)은 리스트를 간결하고 직관적인 문법으로 생성할 수 있는 파이썬의 구문 구조이다. 반복문과 조건문을 한 줄로 표현하여, 기존 리스트로부터 새로운 리스트를 효율적으로 만들 수 있다. ==개요== 리스트 컴프리헨션은 기존의 리스트나 시퀀스를 기반으로 특정 조건이나 연산을 적용해 새로운 리스트를 만드는 방식이다. 일반...)
파이썬 리스트 컴프리헨션(list comprehension)은 리스트를 간결하고 직관적인 문법으로 생성할 수 있는 파이썬의 구문 구조이다. 반복문과 조건문을 한 줄로 표현하여, 기존 리스트로부터 새로운 리스트를 효율적으로 만들 수 있다.
1 개요[편집 | 원본 편집]
리스트 컴프리헨션은 기존의 리스트나 시퀀스를 기반으로 특정 조건이나 연산을 적용해 새로운 리스트를 만드는 방식이다. 일반적인 for 반복문보다 더 간결하고 가독성이 뛰어나며, 함수형 프로그래밍 스타일을 따르는 코드 작성에도 적합하다.
2 기본 문법[편집 | 원본 편집]
[표현식 for 항목 in 반복가능한객체]
- 예: 0부터 9까지의 정수 리스트 생성
- [x for x in range(10)] → [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
3 조건 포함 문법[편집 | 원본 편집]
[표현식 for 항목 in 반복가능한객체 if 조건식]
- 예: 짝수만 포함하는 리스트 생성
- [x for x in range(10) if x % 2 == 0] → [0, 2, 4, 6, 8]
4 중첩 루프 사용[편집 | 원본 편집]
[표현식 for x in A for y in B]
- 예: 두 리스트의 곱 계산
- [x * y for x in [1, 2] for y in [10, 100]] → [10, 100, 20, 200]
5 if-else 조건식 포함[편집 | 원본 편집]
[표현식1 if 조건 else 표현식2 for 항목 in 반복가능한객체]
- 예: 짝수는 그대로, 홀수는 -1로 변환
- [x if x % 2 == 0 else -1 for x in range(5)] → [0, -1, 2, -1, 4]
6 활용 예시[편집 | 원본 편집]
6.1 리스트 필터링[편집 | 원본 편집]
words = ["apple", "banana", "cherry", "kiwi"]
short_words = [word for word in words if len(word) <= 5]
# 결과: ['apple', 'kiwi']
6.2 리스트 변환[편집 | 원본 편집]
numbers = [1, 2, 3, 4]
squares = [x**2 for x in numbers]
# 결과: [1, 4, 9, 16]
6.3 중첩 리스트 펼치기 (flatten)[편집 | 원본 편집]
matrix = [[1, 2], [3, 4], [5, 6]]
flat = [num for row in matrix for num in row]
# 결과: [1, 2, 3, 4, 5, 6]
7 장점[편집 | 원본 편집]
- 코드 간결성
- 한 줄로 리스트 생성이 가능해 가독성이 좋음
- 성능 향상
- 일반적인 for 루프보다 실행 속도가 빠른 경우가 많음
- 함수형 스타일
- 선언적이고 표현력이 높은 코드 작성이 가능
8 단점[편집 | 원본 편집]
- 과도하게 복잡한 표현식은 오히려 가독성을 해칠 수 있음
- 중첩 구조가 많을수록 유지보수가 어려워질 수 있음
9 같이 보기[편집 | 원본 편집]
10 참고 문헌[편집 | 원본 편집]
- Python 공식 문서: https://docs.python.org/3/tutorial/datastructures.html#list-comprehensions
- Beazley, D. (2009). Python Essential Reference. Addison-Wesley.