데이터

제로베이스 데이터사이언스 스쿨 - Part 05. 자료구조&알고리즘 with Python -03

Leah (리아) 2025. 11. 29. 20:43
반응형

Chapter 01. 자료구조

 

Chapter 04-006. 리스트와 for문(2) — for문의 다양한 기능 활용하기

주요 개념 요약

이 파트에서는 for문과 리스트를 조합해서 다양한 조건 처리, 조회, 필터링을 수행하는 방법을 다룬다.
핵심 내용은 다음과 같다:

🔹 1. 리스트 반복 조회

  • 리스트 내부의 요소를 하나씩 순회하며 값을 출력하거나 비교할 수 있다.

🔹 2. 조건문(if)과 함께 사용

  • for문과 if문을 결합해 특정 기준에 맞는 데이터만 출력할 수 있다.
  • 예: 과락 점수(<60점)인 과목만 필터링하기

🔹 3. continue 사용

  • 조건을 만족할 때 다음 반복으로 건너뛰는 기능
  • 특정 조건 제외 후 나머지만 처리하고 싶을 때 유용하다.

🔹 4. 사용자 입력 기반 필터링 실습

  • 사용자 입력으로 과목 점수를 받아 실패한 과목만 출력하는 프로그램 작성

🔹 5. 리스트 기반 최소값/최대값 찾기 (학급 학생 수 예제)

  • 리스트를 돌면서 가장 작은 값, 가장 큰 값을 찾아 출력하는 문제

코드 예시

1) 과락 과목 출력하기 — 기본 for + if 사용

minScore = 60
scores = [
    ['국어', 58],
    ['영어', 77],
    ['수학', 89],
    ['과학', 99],
    ['국사', 50]
]

for item in scores:
    if item[1] < minScore:
        print('과락 과목: {}, 점수: {}'.format(item[0], item[1]))

 

 

출력:

과락 과목: 국어, 점수: 58
과락 과목: 국사, 점수: 50

2) 과락 출력 — continue 활용

minScore = 60
scores = [
    ['국어', 58],
    ['영어', 77],
    ['수학', 89],
    ['과학', 99],
    ['국사', 50]
]

for subject, score in scores:
    if score >= minScore:
        continue
    print('과락 과목: {}, 점수: {}'.format(subject, score))

continue를 사용해 과락이 아닌 경우 건너뛰고 과락 과목만 출력한다.


3) 사용자 입력 기반 과락 체크 프로그램

minScore = 60

korScore = int(input('국어 점수: '))
engScore = int(input('영어 점수: '))
matScore = int(input('수학 점수: '))
sciScore = int(input('과학 점수: '))
hisScore = int(input('국사 점수: '))

scores = [
    ['국어', korScore],
    ['영어', engScore],
    ['수학', matScore],
    ['과학', sciScore],
    ['국사', hisScore]
]

for subject, score in scores:
    if score < minScore:
        print('과락 과목: {}, 점수: {}'.format(subject, score))

 

예시 출력:

국어 점수: 80
영어 점수: 59
수학 점수: 66
과학 점수: 70
국사 점수: 50

과락 과목: 영어, 점수: 59
과락 과목: 국사, 점수: 50

4) 학급별 학생 수 중 최솟값/최댓값 찾기

classes = [25, 18, 30, 22, 27]

min_val = classes[0]
max_val = classes[0]

for num in classes:
    if num < min_val:
        min_val = num
    if num > max_val:
        max_val = num

print("가장 학생 수가 적은 학급:", min_val)
print("가장 학생 수가 많은 학급:", max_val)

 

* 이 글은 제로베이스 데이터사이언스 파트타임 스쿨의 강의 자료 일부를 발췌하여 작성되었습니다.


 

💡 생각 정리

for문과 리스트를 결합하면 데이터 탐색, 필터링, 가공이 매우 쉬워진다.
특히 조건문과 함께 사용할 때 원하는 정보만 걸러내거나 제외시켜 작업 효율성을 높일 수 있음을 자연스럽게 느낄 수 있다.

또한 continue 같은 제어문은 프로그램 흐름을 더 정교하게 다듬는 데 중요한 도구다.
리스트를 반복하면서 입력 기반 데이터까지 연계하면 실제 서비스에서도 활용 가능한 유용한 구조가 된다.


🚀 적용점

 

  • 시험 점수 분석 프로그램 만들기
  • 쇼핑몰 주문 리스트에서 특정 조건(예: 미배송, 취소)만 필터링
  • 데이터 전처리에서 결측값/이상값만 추출하기
  • JSON 리스트를 받아 특정 key 기준으로 필터링
  • 기초 알고리즘(최소/최대 찾기, 합계 계산) 실습

 

반응형