SeouliteLab

[Python/파이썬] Comprehension 소개 및 예제 본문

프로그래밍

[Python/파이썬] Comprehension 소개 및 예제

Seoulite Lab 2024. 3. 6. 09:38

파이썬의 컴프리헨션(Comprehension)은 간결하고 가독성이 좋은 코드를 작성하는 데 유용한 기능입니다. 컴프리헨션은 리스트, 세트, 딕셔너리 등의 데이터 구조를 생성하고 조작하는데 사용됩니다. 이 글에서는 리스트, 세트, 딕셔너리 컴프리헨션에 대해 알아보고 다양한 예제를 살펴보겠습니다.

1. 리스트 컴프리헨션(List Comprehension)

리스트 컴프리헨션은 반복문과 조건문을 사용하여 리스트를 생성하는 간결한 방법입니다.

numbers = [1, 2, 3, 4, 5]
squared = [x ** 2 for x in numbers]
print(squared)  # [1, 4, 9, 16, 25]

2. 세트 컴프리헨션(Set Comprehension)

세트 컴프리헨션은 중복을 허용하지 않는 세트를 생성하는 방법입니다. 중괄호({})를 사용하여 세트를 생성합니다.

numbers = [1, 2, 3, 4, 5, 5]
unique_squares = {x ** 2 for x in numbers}
print(unique_squares)  # {1, 4, 9, 16, 25}

3. 딕셔너리 컴프리헨션(Dictionary Comprehension)

딕셔너리 컴프리헨션은 키-값 쌍을 가지는 딕셔너리를 생성하는 방법입니다. 중괄호({})와 콜론(:)을 사용하여 딕셔너리를 생성합니다.

names = ['Alice', 'Bob', 'Charlie']
name_lengths = {name: len(name) for name in names}
print(name_lengths)  # {'Alice': 5, 'Bob': 3, 'Charlie': 7}

4. 조건문과 함께 사용하기

컴프리헨션은 조건문을 포함하여 원하는 요소만을 필터링할 수 있습니다.

numbers = [1, 2, 3, 4, 5]
even_squared = [x ** 2 for x in numbers if x % 2 == 0]
print(even_squared)  # [4, 16]

5. 다중 루프 사용하기

리스트 컴프리헨션에서 다중 루프를 사용하여 다차원 리스트를 생성할 수 있습니다.

matrix = [[i * j for j in range(1, 4)] for i in range(1, 4)]
print(matrix)  # [[1, 2, 3], [2, 4, 6], [3, 6, 9]]