콘텐츠로 건너뛰기

파이썬 리스트 컴프리헨션이 뭔가요? 예제 몇개만 보면 이해가능

    들어가며

    파이썬을 배우기 시작하면 ‘리스트 컴프리헨션’이라는 용어를 자주 접하게 됩니다. 리스트 컴프리헨션은 파이썬의 고유한 기능으로, 복잡한 리스트 생성과 변형을 단 몇 줄의 코드로 간결하게 표현할 수 있는데요. 하지만 이 개념을 처음 접하는 초보자에게는 다소 어려울 수 있습니다.

    이 글에서는 리스트 컴프리헨션의 기본 개념부터 다양한 활용 예제까지 다루어, 파이썬 초보자들이 이 강력한 도구를 잘 이해하고 활용할 수 있도록 도와드리겠습니다. 리스트 컴프리헨션을 통해 코드 작성이 얼마나 간편해질 수 있는지 함께 알아보세요.

    파이썬 리스트 컴프리헨션 사용법 및 예제

    리스트 컴프리헨션이란?

    리스트 컴프리헨션(List Comprehension)은 기존의 리스트를 기반으로 새로운 리스트를 생성하는 간결한 방법입니다. 이는 파이썬의 반복문과 조건문을 결합하여 한 줄의 코드로 표현할 수 있습니다.

    리스트 컴프리헨션, 왜 사용할까?

    • 가독성: 코드가 더 간결하고 이해하기 쉬워집니다.
    • 성능: 일반적으로 반복문을 사용한 리스트 생성보다 빠릅니다.
    • 유연성: 다양한 조건과 표현식을 쉽게 적용할 수 있습니다.

    기본 문법

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

    [expression for item in iterable]

    여기서 expression은 각 요소에 적용할 표현식이고, item은 순회 가능한 객체(iterable)의 각 요소를 나타냅니다.

    기본 사용 예제

    숫자 리스트 생성

    numbers = [x for x in range(10)]
    print(numbers)  # [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

    제곱수 리스트 생성

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

    조건부 리스트 컴프리헨션

    조건부 리스트 컴프리헨션을 사용하여 특정 조건을 만족하는 요소만을 포함할 수 있습니다.

    [expression for item in iterable if condition]

    조건부 사용 예제

    짝수 리스트 생성

    evens = [x for x in range(10) if x % 2 == 0]
    print(evens)  # [0, 2, 4, 6, 8]

    특정 문자열 필터링

    fruits = ["apple", "banana", "cherry", "date"]
    a_fruits = [fruit for fruit in fruits if fruit.startswith('a')]
    print(a_fruits)  # ['apple']

    중첩 리스트 컴프리헨션

    중첩 리스트 컴프리헨션을 사용하여 2차원 리스트나 다차원 리스트를 생성할 수 있습니다.

    [[expression for sub_item in sub_iterable] for item in iterable]

    중첩 사용 예제

    2차원 리스트 생성

    matrix = [[row * 3 + col for col in range(3)] for row in range(3)]
    print(matrix)  # [[0, 1, 2], [3, 4, 5], [6, 7, 8]]

    구구단 테이블 생성

    multiplication_table = [[i * j for j in range(1, 10)] for i in range(1, 10)]
    for row in multiplication_table:
        print(row)

    리스트 컴프리헨션의 응용 예제

    대문자 변환

    words = ["hello", "world", "python"]
    uppercase_words = [word.upper() for word in words]
    print(uppercase_words)  # ['HELLO', 'WORLD', 'PYTHON']

    중첩 리스트 평탄화

    nested_list = [[1, 2, 3], [4, 5], [6, 7, 8, 9]]
    flat_list = [item for sublist in nested_list for item in sublist]
    print(flat_list)  # [1, 2, 3, 4, 5, 6, 7, 8, 9]

    마무리

    리스트 컴프리헨션은 파이썬의 강력한 기능으로, 다양한 상황에서 유용하게 사용할 수 있습니다. 이를 통해 반복적인 작업을 간결하게 처리하고, 코드의 가독성과 성능을 향상시킬 수 있습니다. 리스트 컴프리헨션을 잘 활용하여 더욱 효율적인 파이썬 프로그래밍을 해보세요.