본문 바로가기
Language/Python

리스트 컴프리헨션

by Wikinist 2023. 8. 10.

파이썬 리스트 컴프리헨션의 다양한 사용법에 대해 설명해 드리겠습니다.

일반 컴프리헨션

리스트 컴프리헨션은 간단하게 리스트를 생성하는 방법 중 하나로, 반복문을 사용하여 리스트의 각 항목을 정의하는 방식입니다. 예를 들어, 1부터 10까지의 제곱 값을 갖는 리스트를 생성하려면 다음과 같이 작성할 수 있습니다,

squares = [x**2 for x in range(1, 11)]

이중 컴프리헨션

리스트 컴프리헨션은 중첩하여 사용할 수도 있습니다. 이를 통해 2차원 리스트를 생성하거나 변환할 수 있습니다. 예를 들어, 2차원 리스트의 각 항목을 전치한 리스트를 생성하려면 다음과 같이 작성할 수 있습니다,

matrix = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
transposed = [[row[i] for row in matrix] for i in range(3)]

if else 사용

리스트 컴프리헨션에서 if와 else를 사용하여 조건에 따라 값을 리스트에 추가하는 방법을 알려드리겠습니다. if와 else를 사용한 리스트 컴프리헨션은 다음과 같이 구성됩니다.

new_list = [value_if_true if condition else value_if_false for item in iterable]


여기서 각 부분을 설명하겠습니다:

  • value_if_true: condition이 True인 경우 결과 리스트에 추가될 값입니다.
  • condition: 조건을 나타내며, 이 조건이 True이면 value_if_true가 리스트에 추가됩니다.
  • value_if_false: condition이 False인 경우 결과 리스트에 추가될 값입니다. 이 부분은 생략할 수도 있습니다.

예를 들어, 리스트에서 짝수와 홀수를 구분하여 새로운 리스트를 만들 때 if와 else를 사용할 수 있습니다:

numbers = [1, 2, 3, 4, 5, 6]
even_odd = ["짝수" if num % 2 == 0 else "홀수" for num in numbers]
print(even_odd)  # 결과: ['홀수', '짝수', '홀수', '짝수', '홀수', '짝수']

이 예제에서는 각 숫자가 홀수이면 "홀수"를, 짝수이면 "짝수"를 결과 리스트에 추가합니다.

if 사용

조건문을 사용하여 조건에 맞는 항목만 생성할 수도 있습니다. 이때 else 구문은 사용하지 않습니다. 예를 들어, 양수인 숫자만 필터링하여 새로운 리스트를 생성하려면 다음과 같이 작성할 수 있습니다.

numbers = [-5, 10, -3, 8, -1, 6]
positive_numbers = [x for x in numbers if x > 0]

이외에도 리스트 컴프리헨션은 다양한 용도로 활용될 수 있으며, 복잡한 연산이나 데이터 변환에 유용하게 사용할 수 있습니다. 단, 가독성을 유지하기 위해 너무 복잡하게 중첩하거나 긴 표현식을 사용하는 것은 피하는 것이 좋습니다.

해당 게시글은 ChatGPT의 도움을 받아 작성되었습니다.

'Language > Python' 카테고리의 다른 글

D드라이브 Conda환경 생성  (0) 2023.09.03
defaultdict lambda 응용  (0) 2023.08.23
strftime(), strptime()  (0) 2023.07.31
파이썬 동등비교 __eq__()  (0) 2023.07.31
부분 집합의 출연 횟수 구하기  (0) 2023.07.29