로딩
요청 처리 중입니다...

파이썬 반복문 완벽 가이드 3편 | 중첩 반복문과 리스트 컴프리헨션 완벽 정리

 파이썬 반복문 완벽 가이드 3편 | 중첩 반복문과 리스트 컴프리헨션 완벽 정리

중첩 반복문의 본질은 자료형 안에 또 다른 자료형이 있을 때, 반복문으로 단계별로 꺼내 조회·탐색·수정·변환하는 것이다. 기본 개념은 반복문 안에 또 다른 반복문이 있는 구조이며, 예로 외부 반복이 한 차례 실행될 때 내부 반복이 처음부터 끝까지 실행된다. 자료형 안의 자료형은 리스트 안에 리스트처럼 계층적으로 구성되며, 예시로 학생 groep를 담은 이중 리스트나 행렬에서 바깥과 안쪽을 각각 순회하며 원소를 출력한다. 다차원 자료형의 깊이에 따라 반복문의 중첩 수는 증가하고, 인덱스가 필요한 경우 range(len())를 사용하거나 enumerate로 인덱스와 값을 동시에 얻을 수 있다. 데이터가 혼합된 경우도 많아 중첩 구조 속에서 각 원소의 구조를 파악해 순회해야 한다. 데이터 구조를 딕셔너리로 구성한 예에서도 각 학생의 키와 값을 반복해 출력하는 방식으로 탐색이 가능하고, 중첩 반복은 표면적 구조를 넘어 실제 데이터의 계층을 따라 흐른다. 또한 중첩 반복은 탐색뿐 아니라 수정, 누적 합계, 인접 요소 비교, 평탄화 등 실무에서 다양한 패턴으로 활용된다. 이와 함께 zip 언패킹이나 enumerate, 그리고 조건문과 break, continue의 조합을 통해 특정 값만 필터링하거나 반복 흐름을 제어하는 기법도 중요한 활용 포인트로 제시된다. 실무 활용 패턴으로는 패턴 조회와 탐색, 수정, 누적 합계, 평탄화, 딕셔너리나 집합의 순회, itertools.product() 대신 중첩 반복을 쓰는 대안, 재귀를 이용한 깊은 구조 순회 등이 포함된다. 최종적으로 핵심 요지는 중첩 반복과 자료형의 본질이 자료형 안에 있는 또 다른 자료형을 반복문으로 단계별로 순회하여 데이터를 조회·탐색·수정·변환하는 데 있다.

리스트 컴프리헨션의 핵심은 반복 가능한 자료형을 순회하며 조건을 검사하고 원하는 형태로 변환해 새로운 리스트를 만드는 축약 문법이다. 정의상 반복문을 이용해 리스트를 생성하는 append 방식의 축약이며, 코드가 짧고 읽기 쉬우며 파이썬다운 코드를 작성할 수 있다. 기본 문법은 [x for x in 반복가능객체]이고, 실행 순서는 반복 조건 검사 표현식 실행 리스트 저장의 순이다. 예로 [x*2 for x in range(5) if x > 1]은 4, 6, 8의 결과를 만든다. 값 변환, 조건 필터링, 조건 분기, 문자열 처리, 함수나 메서드 적용 등 다양한 변환이 가능하고 enumerate 와 zip, 언패킹과의 결합으로 더 복잡한 변환도 간결하게 표현된다. 중첩 및 고급 활용으로는 중첩 리스트 컴프리헨션이나 Flatten 등의 기법이 있으며, 조건 분기와 필터링 문법의 혼동에 주의해야 한다. 항상 리스트를 반환한다는 점과 값 개수 불일치 시의 오류 가능성도 염두에 둬야 한다. 최종 요약으로 리스트 컴프리헨션은 반복+조건 검사+변환의 축약 문법이며, 중첩 반복, Flatten, enumerate, zip 등의 활용을 이해하면 한층 더 완전하게 다룰 수 있다. 핵심 구조는 세 가지이며, 이를 이해하고 활용하면 파이썬의 반복 구조와 자료형 부분을 보다 깊이 이해할 수 있다.

Iterable 판별 패턴의 핵심은 Iterable이 곧 반복 가능한 객체라는 점이다. for문은 오직 Iterable만 순회할 수 있으며, 리스트, 문자열, 튜플, 딕셔너리, 집합, range, 제너레이터 등이 포함된다. 데이터의 유형을 모를 때 반복문을 적용하면 오류가 발생할 수 있어 반복 가능 여부를 먼저 확인해야 한다. 판별 방법으로는 iter()의 성공 여부를 확인하거나 try-except, 또는 isinstance(obj, Iterable) 같은 표준 방법이 널리 쓰인다. 또한 내부 동작은 iter(obj)로 시작해 __iter__()를 찾고 없으면 __getitem__()으로 0부터 호출해 StopIteration이 발생할 때 종료된다. Iterable과 Iterator의 차이도 구분되는데, 모든 Iterator는 Iterable이지만 모든 Iterable이 Iterator는 아니다. Iterator 프로토콜은 __iter__와 __next__가 필요하며 next()로 값을 하나씩 꺼내고 더 이상 없으면 StopIteration이 발생한다. for문의 내부 원리는 iter(data) → next(it) → StopIteration의 흐름으로 작동하며, 문자열도 Iterable에 속하고 딕셔너리는 기본적으로 키를 반복한다. 실무에서는 문자열이나 바이트를 제외하는 조건을 추가하는 경우도 흔하다. 이 내용을 이해하면 파이썬의 반복문과 자료형 파트를 완전히 마스터할 수 있다.

# Python # 파이썬실전 # 파이썬반복문 # 파이썬기초 # 파이썬 # 코딩입문 # 코딩독학 # 컴프리헨션 # 중첩반복문 # 반복문응용 # 리스트컴프리헨션 # 개발자공부 # Python공부 # 프로그래밍공부