호랭이 분석가

리스트 컴프리헨션과 조건문 (list comprehension and if-else) 본문

Python

리스트 컴프리헨션과 조건문 (list comprehension and if-else)

데이터호랑이 2023. 7. 25. 00:41
반응형

 

미드저니로 생성한 이미지

 

리스트 컴프리헨션 (List Comprehension) 이란?

 

파이썬에서 리스트 컴프리헨션은 리스트를 생성하는 짧고 간결한 방법입니다.

일반적인 루프문보다 간결하고 가독성이 좋아 자주 사용됩니다.

기본 구조는 다음과 같습니다.

 

[ 표현식 for 아이템 in 이터러블 ]

 

리스트 컴프리헨션의 기본 사용법

 

예를 들어, 0~9까지의 숫자를 제곱하여 새로운 리스트를 만들고 싶다고 가정해 봅시다.

일반적인 루프를 사용하는 방법은 아래와 같습니다.

 

squares = []

for i in range(10):
    squares.append(i ** 2)
    
print(squares)

 

위 코드를 리스트 컴프리헨션을 사용하면 더욱 간결하게 할 수 있습니다.

 

squares = [i ** 2 for i in range(10)]

print(squares)

 

두 코드 모두 동일한 결과인 [0, 1, 4, 9, 16, 36, 49, 64, 81] 값을 출력합니다.

하지만, 리스트 컴프리헨션을 사용한 두 번째 코드가 더 짧고 간결하다는 것을 확인할 수 있습니다.

 

리스트 컴프리헨션에 조건문 추가하기

 

또한, 리스트 컴프리헨션에서는 if 조건문을 추가하여 더 복잡한 경우를 다를 수 있으며,

간단한 2가지 사용 방법에 대해 알아보겠습니다.

 

  •  if만 사용할 때
    이 경우 if는 필터링의 역할을 합니다.
    for 루프의 뒤에 위치하며, 조건에 맞는 요서면 새로운 리스트에 포함시킵니다.

[i for i in range(10) if i % 2 == 0] # 0부터 9까지의 짝수만을 포함

 

  • if-else를 사용할 때
    if-else는 값을 결정하는 역할을 합니다.
    for 루프의 앞에 위치하며, 조건에 따라 리스트의 각 요소에 대한 값을 결정합니다.

[i ** 2 if i % 2 == 0 else i for i in range(10)] # 짝수는 제곱, 홀수는 원래 값 그대로

 

이처럼 리스트 컴프리헨션은 우리가 코드를 더 간결하고 직관적으로 작성할 수 있도록 도와줍니다.

조건문과 반복문을 효율적으로 사용하면 파이썬 코드를 간결하게 만드는 것이 가능합니다.

 

Comments