728x90
반응형
Python의 컴프리헨션(comprehension)은 시퀀스를 간결하게 생성하거나 변형하는 표현식입니다. 리스트, 딕셔너리, 세트 컴프리헨션은 코드를 간결하게 만들고, 실행 속도를 향상시키며, 가독성을 높이는 데 유용합니다. 이 글에서는 각 컴프리헨션의 사용법과 예제를 통해 어떻게 활용할 수 있는지 알아보겠습니다.
리스트 컴프리헨션 (List Comprehension)
리스트 컴프리헨션은 리스트 내에서 for문과 if문을 사용하여 새로운 리스트를 생성합니다. 기본 구조는 [표현식 for 항목 in 이터러블 if 조건]입니다.
# 예제: 0부터 9까지 수 중에서 짝수만 포함하는 리스트
even_numbers = [x for x in range(10) if x % 2 == 0]
print(even_numbers) # 출력: [0, 2, 4, 6, 8]
딕셔너리 컴프리헨션 (Dictionary Comprehension)
딕셔너리 컴프리헨션은 {키: 값 for 표현식 in 이터러블} 구조를 사용하여 딕셔너리를 생성합니다. 조건문을 추가하여 필터링도 가능합니다.
# 예제: 숫자와 그 숫자의 제곱을 포함하는 딕셔너리
squares = {x: x**2 for x in range(6)}
print(squares) # 출력: {0: 0, 1: 1, 2: 4, 3: 9, 4: 16, 5: 25}
세트 컴프리헨션 (Set Comprehension)
세트 컴프리헨션은 {표현식 for 항목 in 이터러블 if 조건} 구조를 사용하여 세트를 생성합니다. 리스트 컴프리헨션과 유사하지만, 중복된 값 없이 유일한 값만 저장합니다.
# 예제: 0부터 9까지 수 중에서 짝수의 제곱을 포함하는 세트
even_squares = {x**2 for x in range(10) if x % 2 == 0}
print(even_squares) # 출력: {0, 64, 16, 4, 36}
컴프리헨션의 이점
- 간결성: 컴프리헨션을 사용하면 더 적은 코드로 데이터를 생성할 수 있습니다.
- 성능: 컴프리헨션은 일반적인 for문에 비해 일반적으로 더 빠른 실행 속도를 제공합니다.
- 표현력: 컴프리헨션은 표현력이 뛰어나 코드의 의도를 명확하게 전달할 수 있습니다.
결론
Python의 컴프리헨션은 코드를 더욱 효율적이고, 간결하며, 읽기 쉽게 만들어 줍니다. 각각의 컴프리헨션을 적절히 활용하여 리스트, 딕셔너리, 세트와 같은 데이터 구조를 간편하게 생성하고 관리할 수 있습니다. 실제 코드에 적용해보면, 그 편리함을 직접 체감할 수 있을 것입니다.
728x90
반응형
'Python' 카테고리의 다른 글
Python 패키지 구조 이해하기: 모듈을 넘어서 (17) | 2024.05.13 |
---|---|
Python 모듈 만들기와 활용 방법: 코드 재사용 및 조직화 (20) | 2024.05.13 |
Python에서 데코레이터(Decorator) 이해하기: 기능 확장의 아름다움 (35) | 2024.05.12 |
Python에서 제너레이터(Generator) 활용하기: 효율적인 데이터 처리 (30) | 2024.05.11 |
Python에서 상속과 다형성 이해하기 (33) | 2024.05.11 |