본문 바로가기
코딩교육/Python 초등교육에서 전문가까지

2단계 : 5. 리스트와 반복문 (리스트와 반복문 - for 문을 활용한 리스트 순회)

by 제리토리 2025. 3. 24.
728x90
반응형

Python의 리스트(List)는 여러 개의 데이터를 저장할 수 있는 자료형으로, 반복문과 함께 활용하면 더욱 강력한 데이터 처리 기능을 구현할 수 있습니다.

 

이번 장에서는 리스트를 for 문으로 순회하는 다양한 방법과 효율적인 반복문 사용법을 심도 있게 다룹니다.

 

 

1. 리스트와 for 문 기본 개념

 

for 문을 활용하면 리스트의 각 요소를 순차적으로 접근하여 반복적으로 실행할 수 있습니다.

 

㉮ for 문을 이용한 리스트 순회

fruits = ["사과", "바나나", "체리"]

for fruit in fruits:
    print(fruit)

 

출력결과

사과
바나나
체리

 

  ✅ 각 요소가 순서대로 출력됨.

 

 

2. 리스트의 인덱스를 활용한 반복문

 

㉮ range()를 사용한 인덱스 접근

fruits = ["사과", "바나나", "체리"]

for i in range(len(fruits)):
    print(f"{i}번째 과일: {fruits[i]}")

 

출력결과

0번째 과일: 사과
1번째 과일: 바나나
2번째 과일: 체리

 

  ✅ 인덱스를 함께 출력하려면 range(len(리스트))를 사용.

 

 

㉯ enumerate() 를  활용한 인덱스와 값 동시 출력

 

enumerate()를 사용하면 인덱스와 요소를 동시에 가져올 수 있어 더욱 효율적입니다.

fruits = ["사과", "바나나", "체리"]

for index, fruit in enumerate(fruits):
    print(f"{index}번째 과일: {fruit}")

 

출력결과

0번째 과일: 사과
1번째 과일: 바나나
2번째 과일: 체리

 

  ✅ enumerate()를 사용하면 for i in range(len(리스트))보다 코드가 간결해짐.

 

 

 

3. 리스트 필터링과 조건문 활용

 

 

리스트 순회 중 특정 조건을 만족하는 요소만 출력할 수도 있습니다.

 

㉮ 특정 조건을 만족하는 요소 출력

numbers = [10, 25, 30, 47, 50]

for num in numbers:
    if num % 2 == 0:  # 짝수만 출력
        print(num)

 

출력결과

10
30
50

 

  ✅ if 문을 사용하여 특정 조건을 만족하는 요소만 선택 가능.

 

 

㉯ 리스트에서 특정 요소 찾기

names = ["철수", "영희", "민수", "지수"]
search_name = "민수"

for name in names:
    if name == search_name:
        print(f"{search_name}을(를) 찾았습니다!")
        break  # 찾으면 반복 종료

 

출력결과

민수를 찾았습니다!

 

  ✅ 반복문을 사용하여 리스트에서 특정 요소를 찾을 수 있음.

 

 

 

4. 중첩 for 문을 이용한 2차원 리스트 순서

 

 

리스트 내부에 또 다른 리스트가 있는 2차원 리스트(행렬)을 처리하려면 중첩 for 문을 사용해야 합니다.

 

㉮ 기본적인 2차원 리스트 순회

matrix = [
    [1, 2, 3],
    [4, 5, 6],
    [7, 8, 9]
]

for row in matrix:
    for value in row:
        print(value, end=" ")
    print()  # 행 변경

 

출력결과

1 2 3
4 5 6
7 8 9

 

  ✅ 2차원 리스트를 순회할 때는 for 문을 중첩하여 사용.

 

 

㉯ enumerate()를 활용한 2차원 리스트 순회

for i, row in enumerate(matrix):
    for j, value in enumerate(row):
        print(f"({i},{j}) 위치: {value}")

 

출력결과

(0,0) 위치: 1
(0,1) 위치: 2
(0,2) 위치: 3
(1,0) 위치: 4
(1,1) 위치: 5
(1,2) 위치: 6
(2,0) 위치: 7
(2,1) 위치: 8
(2,2) 위치: 9

 

  ✅ 각 요소의 좌표와 함께 값을 출력할 수 있음.

 

 

 

5. zip()을 활용한 여러 리스트 동시 순회

 

 

두 개 이상의 리스트를 동시에 순회할 때는 zip()을 사용하면 편리합니다.

names = ["철수", "영희", "민수"]
scores = [85, 90, 78]

for name, score in zip(names, scores):
    print(f"{name}의 점수: {score}")

 

출력결과

철수의 점수: 85
영희의 점수: 90
민수의 점수: 78

 

  ✅ 여러 개의 리스트를 동시에 순회할 때 유용함.

 

 

6. 리스트에서 중복 제거하며 순회

 

 

리스트에서 중복된 요소를 제거하고 순회하려면 set()을 사용할 수 있습니다.

numbers = [10, 20, 30, 10, 20, 40]

for num in set(numbers):
    print(num)

 

출력결과

40
10
20
30

 

  ✅ set()을 사용하면 중복을 제거한 후 순회 가능.

 

 

7. 리스트를 정렬하며 순회

 

리스트를 정렬한 후 순회할 수도 있습니다.

numbers = [5, 2, 9, 1, 7]

for num in sorted(numbers):  # 오름차순 정렬 후 순회
    print(num)

 

출력결과

1
2
5
7
9

 

  ✅ sorted()를 사용하면 원본 리스트를 변경하지 않고 정렬된 상태로 순회 가능.

 

 

8. 요약

 

기본 리스트 순회

  • for 변수 in 리스트: 형태로 순회 가능.

 

인덱스를 활용한 순회

  • range(len(리스트)) 사용 가능.

  • enumerate()를 사용하면 더욱 효율적.

 

조건문과 함께 사용

  • 특정 조건을 만족하는 요소만 출력 가능.

  • break를 사용하면 특정 요소를 찾고 반복 종료 가능.

 

다양한 리스트 처리 기법

  • 2차원 리스트 순회: 중첩 for 문 사용.

  • 여러 리스트 동시 순회: zip() 사용.

  • 중복 제거 후 순회: set() 사용.

  • 정렬 후 순회: sorted() 사용.

728x90
반응형