<Python> List Comprehension

반응형

리스트 내포(List Comprehension) 소개

파이썬의 리스트 내포(List Comprehension)는 간결하고 가독성 높은 방식으로 새로운 리스트를 생성하는 기능입니다.

리스트 내포를 사용하면 for 문을 사용하는 전통적인 방법보다 Python 코드를 더 효율적이고 표현력있게 작성할 수 있습니다.

 

기본 리스트 내포 사용법

기본적인 리스트 내포 구문은 아래와 같습니다.

[expression for item in iterable]

예를 들어, 0부터 9까지 숫자의 제곱 값으로 구성된 리스트를 생성해봅시다.

squares = [x ** 2 for x in range(10)]
print(squares)  # 출력: [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]

이 구문은 다음과 같은 좀 더 긴 코드를 대신할 수 있습니다.

squares = []
for x in range(10):
    squares.append(x ** 2)

 

조건을 사용한 리스트 내포

리스트 내포를 사용하면 다음과 같이 if 조건문을 사용하여 필터링 된 결과를 생성할 수 있습니다.

[expression for item in iterable if condition]

예를 들어, 0부터 9까지 짝수 숫자의 제곱 값을 필터링하여 새로운 리스트를 생성해봅시다.

even_squares = [x ** 2 for x in range(10) if x % 2 == 0]
print(even_squares)  # 출력: [0, 4, 16, 36, 64]

중첩된 리스트 내포

리스트 내포를 중첩하여 사용하면 다차원 리스트를 생성하거나 변환할 수 있습니다. 다음과 같은 구문을 사용할 수 있습니다.

[expression for sublist in iterable for item in sublist]

예를 들어, 2차원 리스트의 각 요소를 제곱하여 새로운 2차원 리스트를 만듭니다.

matrix = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
squared_matrix = [[x ** 2 for x in row] for row in matrix]
print(squared_matrix)  # 출력: [[1, 4, 9], [16, 25, 36], [49, 64, 81]]

 

리스트 내포의 활용

리스트 내포는 여러 가지 형태로 사용할 수 있으며, 이에 따라 다양한 문제를 해결할 수 있습니다.

다음은 몇 가지 예제입니다.

  • 조건기반 리스트 생성: 특정 조건이 충족되는 데이터만 추출하여 리스트로 생성합니다.
  • 문자열에서 단어 리스트 생성: 문자열을 처리하려면 구분자를 기반으로 단어 목록을 생성합니다.
  • 데이터 변환: 각각의 요소를 특정 함수나 식을 사용하여 즉시 변환하는 리스트를 생성합니다.

이 글에서는 파이썬의 리스트 내포 기능에 대해 소개하였습니다.

리스트 내포는 간결하고 가독성이 좋은 방식으로 리스트를 생성할 수 있습니다.

패턴을 이해하고 사용하면 더 깔끔하고 효율적인 코드를 작성할 수 있습니다.

처음에는 익숙하지 않을 수 있으나, 자주 사용함으로써 리스트 내포 사용법을 숙달할 수 있습니다.

 

감사합니다.

Designed by JB FACTORY