공부/Python

[Python] 컴프리헨션(comprehension)

순제로 2024. 5. 10. 02:23
728x90

파이썬의 컴프리헨션(comprehension)은 주로 리스트, 세트, 딕셔너리와 같은 컬렉션 데이터 타입을 생성하기 위해 간결하게 작성할 수 있는 구문입니다. 이를 사용하면 반복문과 조건문을 사용해 여러 줄로 작성되는 코드를 한 줄로 간단하게 표현할 수 있어 코드의 가독성을 높일 수 있습니다.

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

리스트 컴프리헨션은 대괄호 [ ] 안에 표현식과 for문을 사용하여 리스트를 생성합니다. 필요에 따라 if문을 추가하여 특정 조건을 만족하는 요소만 리스트에 포함시킬 수 있습니다.

  • 기본 형태:
    [표현식 for 항목 in 반복가능객체 if 조건]
    
  • 예시:
    numbers = [1, 2, 3, 4, 5]
    squares = [x**2 for x in numbers]
    # [1, 4, 9, 16, 25]
    

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

세트 컴프리헨션은 중괄호 { }를 사용하여 세트를 생성합니다. 리스트 컴프리헨션과 유사하게 작성되며, 중복을 허용하지 않는 세트의 특성을 가집니다.

  • 기본 형태:
    {표현식 for 항목 in 반복가능객체 if 조건}
    

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

딕셔너리 컴프리헨션은 중괄호 { }를 사용하며, 각 항목을 키:값 쌍으로 생성합니다.

  • 기본 형태:
    {키: 값 for 항목 in 반복가능객체 if 조건}
    
  • 예시:
    words = ["apple", "banana", "cherry"]
    word_length = {word: len(word) for word in words}
    # {'apple': 5, 'banana': 6, 'cherry': 6}
    

컴프리헨션을 사용하면 코드가 더 간결해지고, 이해하기 쉬워집니다. 하지만 너무 복잡한 컴프리헨션은 오히려 가독성을 해칠 수 있으니 적절한 수준에서 사용하는 것이 중요합니다.

728x90
반응형