[Python] 리스트 컴프리헨션(List Comprehension)로 한줄 코딩하자!

PhilAI·2023년 8월 1일
0

코테 풀고나서 다른사람 풀이 보면 난 10줄로 풀었는데 한줄로 푸시는 분들이 꽤 있죠?
볼때마다 오.... 어떻게 저렇게 하지 싶지만 보통 리스트컴프리헨션 을 사용해서 짧게 만드시더라구요!

리스트 컴프리헨션 간단 정리

리스트 컴프리헨션은 파이썬에서 간결하고 효율적으로 리스트를 생성하는 방법으로, 반복문과 조건문을 한 줄로 표현할 수 있어 매우 유용합니다. 예제를 통해 자세히 살펴보도록 하겠습니다.

리스트 컴프리헨션의 기본 문법은 다음과 같습니다:

new_list = [expression for item in iterable if condition]
  • expression: 각 항목에 대해 수행되는 연산
  • item: iterable에서 가져온 개별 요소
  • condition: 선택적으로 사용되며, True로 평가되는 경우에만 expression이 적용

리스트 컴프리헨션 활용 예시

1. 1부터 10까지의 제곱 값을 가지는 리스트 생성하기

일반적인 방법

squares = []
for i in range(1, 11):
    squares.append(i**2)
    
print(squares)      # 출력: [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

리스트 컴프리헨션 사용

squares_comp = [i**2 for i in range(1, 11)]

print(squares_comp) # 출력: [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

2. 조건문과 함께 사용하기 - 홀수만 필터링하여 리스트 생성하기

일반적인 방법

odd_numbers = []
for i in range(1, 11):
    if i % 2 == 1:
        odd_numbers.append(i)
        
print(odd_numbers)      # 출력: [1, 3, 5, 7, 9]

리스트 컴프리헨션 사용

odd_numbers_comp = [i for i in range(1, 11) if i % 2 == 1]

print(odd_numbers_comp) # 출력: [1, 3, 5, 7, 9]

3. 중첩 리스트 컴프리헨션

리스트 컴프리헨션은 중첩하여 사용할 수도 있습니다.
이를 통해 2차원 리스트를 생성할 수 있습니다.

일반적인 방법

matrix = []
for i in range(3):
    row = []
    for j in range(3):
        row.append(i * j)
    matrix.append(row)
    
print(matrix)
# 출력: [[0, 0, 0], [0, 1, 2], [0, 2, 4]]

리스트 컴프리헨션 사용

matrix_comp = [[i * j for j in range(3)] for i in range(3)]

print(matrix_comp)
# 출력: [[0, 0, 0], [0, 1, 2], [0, 2, 4]]

리스트 컴프리헨션을 사용하면 코드가 간결해지고 가독성이 높아집니다. 또한, 반복문과 조건문을 한 줄로 표현하기 때문에 코드를 작성하고 디버깅하는 시간을 단축시킬 수 있습니다.
하지만, 지나치게 복잡하게 중첩하여 사용하면 가독성이 떨어질 수 있으므로 적절한 사용법을 숙지하는 것이 중요합니다.

profile
철학과가 도전하는 Big Data, AI

0개의 댓글