파이썬 리스트 컴프리헨션

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 참고 문헌[편집 | 원본 편집]