Python 컴프리헨션 & 예외 처리 (1/2)

DA_LEESUNHO·2025년 11월 11일

Learning Base

목록 보기
10/15

오늘 배우게 된
Python - 컴프리헨션(Comprehension) 과 예외 처리

바로 복습을 해야 할 정도로 어려웠다.
그래서 이 전 과정은 잠깐 뛰어 넘고, 복습해보려고 한다.

이론 먼저 진행해보고,
익숙해지기 위해 실습도 따로 진행해볼 예정이다


세 줄 요약 >
1) 컴프리헨션(comprehension)
2) 파이써닉 코딩을 위함
3) 너무 복잡해지면 쓰지마라


환경 : VSC (Visual Studio Code)

** 코드 실행은 .py 파일을 실행한다는 개념으로 터미널에서 실행

컴프리헨션 (Comprehension)

짧게 한 줄로 작성할 수 있는 파이썬의 문법
간결성 과 가독성을 확보
for 문보다 미세하게 빠른 경우가 많음 (내부루프 활용)
식 자체가 너무 복잡해지면 사용하면 안 됨

저 영단어를 처음 들어봤다.. 공부 필요성을 느끼며 사전적의미를 검색해봤다.
: 이해, 포함, 독해 / 이해력(문맥에 따라)
사전적 의미와 설명이 유의미한 연관이 있는지는 모르겠다.

일단, 어느정도 개념은 파악했으니 예문을 통해 확인해보자

# 길이가 5인 리스트 생성
# 0~5까지 순회하면서 각 인덱스 값에 x2 를 진행
size = 5
arr = [0]*size
for i in range(len(arr)):
    arr[i]=i*2
print(arr)


리스트 선언, for~in range 구문을 통해 각각의 인덱스에 값을 할당한 코드이다.
다음 코드를 보자.

size=5
arr=[i*2 for i in range(len(arr))]
print(arr)


똑같은 과정과 결과를 목표로 작성한 코드이다.
얼핏봐도, 코드 행 수가 줄었다.
이처럼 '선언과 할당, 조건'의 순차적인 작업을 일원화하여 짧고 간략하게 작성하는 것이다.

기본 구조는 다음과 같다.
변수를 활용한 값(표현식) for 변수 in 반복대상 if 조건

조건을 사용한 추가 예시를 하나 더 보도록 하자

size=[i for i in range(1,11)]	# size 리스트의 선언과 할당까지 진행
print(size)
arr=[l for l in range(len(size)) if l%2==0] # arr 리스트의 선언과 할당, 조건을 진행
print(arr)

어느정도 작성하다보니 익숙해졌다.
그런데 자료구조가 '리스트'인 경우를 제외하고, 다른 자료구조도 사용이 가능할까?
마찬가지로 가능하다.

딕셔너리 컴프리헨션
: {키 표현식: 값 표현식 for 변수 in 반복대상 if 조건}
세트(집합) 컴프리헨션
: {표현식 for 변수 in 반복대상 if 조건}

profile
성장과 회고를 기록하는 일기장

0개의 댓글