반응형
Chapter 01. 자료구조
리스트와 while문
while문을 이용한 리스트 아이템 조회하기
1. 주요 개념 요약
이 챕터에서는 while문을 이용해 리스트를 순회(iteration)하며 특정 조건에 맞는 값을 걸러내는 방법을 다룬다.
핵심 개념은 다음과 같다:
- while n < len(list) 형태로 리스트 길이만큼 반복
- 인덱스를 직접 증가시키며 순회
- 조건문(if)을 함께 사용하여 특정 조건을 만족하는 아이템만 출력
- continue 문을 통해 조건을 만족하지 않는 경우 다음 반복으로 건너뛰기
- 사용자가 입력한 데이터를 리스트에 저장한 뒤, while문으로 분석하는 실습 포함
2. 코드 예시
예제 1 - 과락(60점 미만) 과목 출력하기
minScore = 60
scores = [
['국어', 58],
['영어', 77],
['수학', 89],
['과학', 99],
['국사', 50]
]
n = 0
while n < len(scores):
if scores[n][1] < minScore:
print('과락 과목: {}, 점수: {}'.format(scores[n][0], scores[n][1]))
n += 1
출력 결과:
과락 과목: 국어, 점수: 58
과락 과목: 국사, 점수: 50
예제 2 - continue 활용 버전 (PDF p.3)
minScore = 60
scores = [
['국어', 58],
['영어', 77],
['수학', 89],
['과학', 99],
['국사', 50]
]
n = 0
while n < len(scores):
if scores[n][1] >= minScore:
n += 1
continue
print('과락 과목: {}, 점수: {}'.format(scores[n][0], scores[n][1]))
n += 1
예제 3 - 사용자 입력 기반 실습 (PDF p.4)
minScore = 60
korScore = int(input('국어 점수: '))
engScore = int(input('영어 점수: '))
matScore = int(input('수학 점수: '))
sciScore = int(input('과학 점수: '))
hisScore = int(input('국사 점수: '))
scores = [
['국어', korScore],
['영어', engScore],
['수학', matScore],
['과학', sciScore],
['국사', hisScore]
]
n = 0
while n < len(scores):
if scores[n][1] < minScore:
print('과락 과목: {}, 점수: {}'.format(scores[n][0], scores[n][1]))
n += 1
* 이 글은 제로베이스 데이터사이언스 파트타임 스쿨의 강의 자료 일부를 발췌하여 작성되었습니다.
💡 생각 정리
while문을 사용하면 리스트의 길이를 정확히 제어하면서 데이터의 특정 조건을 처리하는 과정을 한 단계씩 이해하기 쉬웠다. 특히 인덱스를 직접 다루기 때문에 for문보다 흐름을 명확하게 눈으로 확인할 수 있다는 장점이 있다. 또한 continue를 사용해 조건을 만족하지 않는 항목을 건너뛰는 로직을 만들 때 반복문의 흐름을 스스로 제어하는 느낌을 더 확실히 이해할 수 있었다.
사용자 입력 데이터를 리스트에 저장한 뒤 조건을 적용하는 실습은 실전 데이터 처리에 가장 가까웠으며, 실제 프로그램에서도 그대로 사용될 수 있는 구조라는 점이 인상적이었다.
🚀 적용점
- 과제 자동 채점 프로그램에서 특정 점수 기준으로 ‘부족한 영역’을 자동 추출하는 기능에 적용 가능
- 웹/앱 프로젝트에서 입력 리스트를 조건별로 필터링하는 기능 구현 시 활용
- 실무 데이터 처리에서 인덱스를 직접 다루며 조건 검증해야 하는 경우 유용
- 반복문 흐름을 제어하는 기본기(continue, 인덱스 증가 등)를 확실하게 다지는 연습으로 적합
- 여행 앱(예: Wannago Trip)에서 사용자 입력 옵션을 분석해 특정 조건(예: 예산 이하, 이동 거리 이하)에 맞는 항목만 필터링하는 기능에도 동일한 구조로 적용 가능
반응형
'데이터' 카테고리의 다른 글
| 제로베이스 데이터사이언스 스쿨 - Part 05. 자료구조&알고리즘 with Python -06 (0) | 2025.12.02 |
|---|---|
| 제로베이스 데이터사이언스 스쿨 - Part 05. 자료구조&알고리즘 with Python -05 (0) | 2025.12.01 |
| 제로베이스 데이터사이언스 스쿨 - Part 05. 자료구조&알고리즘 with Python -03 (0) | 2025.11.29 |
| 제로베이스 데이터사이언스 스쿨 - Part 05. 자료구조&알고리즘 with Python -02 (0) | 2025.11.28 |
| 제로베이스 데이터사이언스 스쿨 - Part 05. 자료구조&알고리즘 with Python -01 (0) | 2025.11.27 |