* 리스트 컴프리헨션(list comprehension)
: 반복문과 조건문을 활용하여 리스트를 간결하게 생성할 수 있는 문법
for문보다 더 편리하며 코드 가독성이 좋아요
기본 구조
[<표현식> for <아이템> in <반복 대상> if <조건>]
<아이템>: 반복 대상에서 하나씩 가져오는 요소
<표현식>: 각 아이템에 대해 연산(가공)한 결과
if <조건>: 특정 조건을 만족하는 아이템만 최종 리스트에 포함(선택사항)
: 반복 대상을 순회하면서, 각 아이템에 대해 <표현식>을 수행한 결과를 새로운 리스트에 담습니다
if <조건>이 있으면, 그 조건을 만족하는 아이템에 대해서만 <표현식>을 적용하여 리스트에 추가해요
#예시
numbers = [1, 2, 3, 4, 5, 6]
result = [num * 2 for num in numbers if num % 2 == 0]
print(result) # [4, 8, 12] (짝수만 골라서 2배)
조건문 여러 개 사용
# if, else를 표현식에 직접 포함
numbers = [1, 2, 3, 4, 5, 6]
result = [num * 2 if num % 2 == 0 else num + 1 for num in numbers]
print(result)
# 짝수일 때는 2배, 홀수일 때는 +1
# 출력: [2, 4, 4, 8, 6, 12]
# 여러 if 조건
numbers = range(1, 21) # 1부터 20까지
result = [num for num in numbers if num % 2 == 0 if num % 3 == 0]
print(result)
# 출력: [6, 12, 18] (2의 배수이면서 3의 배수인 수)
중첩 반복문
# 먼저 일반적인 이중 for문
pairs = []
for x in [1, 2, 3]:
for y in [4, 5, 6]:
pairs.append((x, y))
print(pairs)
# 출력: [(1, 4), (1, 5), (1, 6), (2, 4), (2, 5), (2, 6), (3, 4), (3, 5), (3, 6)]
# 이를 리스트 컴프리헨션으로 변환
pairs = [(x, y) for x in [1, 2, 3] for y in [4, 5, 6]]
print(pairs)
# 출력: [(1, 4), (1, 5), (1, 6), (2, 4), (2, 5), (2, 6), (3, 4), (3, 5), (3, 6)]
'언어 > Python' 카테고리의 다른 글
패키지(Package) (2) | 2025.01.01 |
---|---|
클래스/객체/인스턴스 (0) | 2025.01.01 |
함수(Function) (0) | 2024.12.31 |
딕셔너리/집합/불 자료형, 변수 알아보기 (2) | 2024.12.26 |
문자열 자료형/리스트 알아보기 (1) | 2024.12.26 |