리스트 컴프리헨션

2024. 12. 30.·언어/Python

* 리스트 컴프리헨션(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
'언어/Python' 카테고리의 다른 글
  • 클래스/객체/인스턴스
  • 함수(Function)
  • 딕셔너리/집합/불 자료형, 변수 알아보기
  • 문자열 자료형/리스트 알아보기
우는거북이
우는거북이
  • 우는거북이
    거북이는 울고 있다
    우는거북이
  • 전체
    오늘
    어제
    • 알아보기 (78) N
      • AI (4)
      • 언어 (16)
        • Python (15)
        • C언어 (1)
      • 알고리즘 (7)
      • 백준 (22)
      • 자료구조 (10)
      • 컴퓨터네트워크 (6)
      • 운영체제 (1)
      • 데이터통신 (12) N
  • 인기 글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
우는거북이
리스트 컴프리헨션
상단으로

티스토리툴바