Python/기본

[Python] 리스트 컴프리헨션(List Comprehension)

댕주 2024. 11. 9. 11:08

리스트 컴프리헨션(List Comprehension)

리스트 컴프리헨션은 파이썬에서 리스트를 간결하고 직관적으로 생성하는 문법이다. 기존의 for 반복문과 if 조건문을 한 줄로 작성할 수 있어 코드 가독성을 높이는 데 유용하다.

기본 문법

[표현식 for 항목 in 반복 가능한 객체 if 조건]

 

  • 표현식: 리스트의 각 항목이 될 값을 정의한다
  • 항목: 반복할 변수 이름
  • 반복 가능한 객체: 리스트, 문자열, 튜플 등의 이터러블 객체
  • 조건 (선택적): 항목을 필터링할 조건을 설정할 수 있다. 조건을 만족하는 항목만 리스트에 추가된다

 

예시 1: 간단한 리스트 생성

1부터 5까지의 숫자 리스트 만들기

numbers = [x for x in range(1, 6)]

 

예시 2: 조건을 포함한 리스트 생성

even_number = [x for x in range(1, 11) if x % 2 == 0]

 

예시 3: 표현식에 수식 적용

표현식 부분에 수식을 넣어 각 요소를 변경하면서 리스트를 생성할 수 있다

squares = [x**2 for x in range(1, 6)]
# squares = [1, 4, 9, 16, 25]

예시 4: 중첩 리스트 컴프리헨션

2차원 리스트를 생성할 때 중첩 리스트 컴프리헨션을 사용할 수 있다

matrix = [[i * j for j in range(1, 4)] for i in range (1, 4)]
# matrix = [[1, 2, 3], [2, 4, 6], [3, 6, 9]

 

장점과 유의사항

  • 장점: 리스트 컴프리헨션은 코드가 간결해지고, 가독성이 높아진다
  • 유의사항: 지나치게 복잡한 리스트 컴프리헨션은 가독성을 떨어뜨릴 수 있으므로, 복잡한 로직은 일반적인 for 문으로 구현하는 것이 더 좋다.

'Python > 기본' 카테고리의 다른 글

[Python] sorted() 함수  (0) 2024.11.09
[Python] 제너레이터 표현식  (0) 2024.11.09
[Python] match  (0) 2024.11.08
[Python] max(), min() 함수  (0) 2024.11.07
[Python] defaultdict 사용하기  (1) 2024.11.02