[카테고리:] 미분류

  • Python의 반복문 필수 개념: for, zip, range 활용하기

    Python에서 for 루프와 zip(), range()를 조합하면 코드를 간결하게 만들면서도 강력한 기능을 구현할 수 있습니다. 이번 포스팅에서는 이 세 가지를 조합하여 반복문을 효과적으로 다루는 방법을 알아보겠습니다.


    1. 기본 개념

    (1) range() – 숫자 시퀀스 생성

    range(start, stop, step)을 사용하면 특정 범위의 숫자 리스트를 생성할 수 있습니다.

    for i in range(1, 10, 2):  # 1부터 9까지 2씩 증가
        print(i, end=" ")
    

    출력:

    1 3 5 7 9
    
    • start: 시작 값 (생략하면 0부터 시작)
    • stop: 종료 값 (포함되지 않음)
    • step: 증가 또는 감소 값 (기본값 1)

    (2) zip() – 여러 리스트 동시 순회

    zip()을 활용하면 여러 리스트를 한 번에 반복문으로 순회할 수 있습니다.

    names = ["Alice", "Bob", "Charlie"]
    ages = [25, 30, 35]
    
    for name, age in zip(names, ages):
        print(f"{name} is {age} years old.")
    

    출력:

    Alice is 25 years old.
    Bob is 30 years old.
    Charlie is 35 years old.
    
    • zip()은 여러 리스트를 묶어서 튜플을 반환합니다.
    • 가장 짧은 리스트의 길이에 맞춰 반복됩니다.

    2. for, zip, range 조합하기

    (1) 두 개의 range()를 이용한 동시 반복

    예제를 보면 두 개의 range()를 조합해 서로 반대 방향으로 증가/감소하는 값을 출력할 수 있습니다.

    for i, j in zip(range(1, 10, 1), range(10, 1, -1)):
        print(i, ' ', j)
    

    출력:

    1   10
    2   9
    3   8
    4   7
    5   6
    6   5
    7   4
    8   3
    9   2
    
    • 첫 번째 range(1, 10, 1)은 1부터 9까지 증가
    • 두 번째 range(10, 1, -1)은 10부터 2까지 감소
    • zip()을 사용해 두 개의 값을 동시에 반복

    (2) 리스트 인덱스와 값 함께 가져오기

    리스트의 인덱스와 값을 함께 가져올 때 zip(range(len(list)), list) 패턴을 활용할 수 있습니다.

    fruits = ["apple", "banana", "cherry"]
    for index, fruit in zip(range(len(fruits)), fruits):
        print(f"{index}: {fruit}")
    

    출력:

    0: apple
    1: banana
    2: cherry
    

    Python에서는 enumerate()를 활용하면 더 간결하게 표현할 수도 있습니다.

    for index, fruit in enumerate(fruits):
        print(f"{index}: {fruit}")
    

    3. 응용 예제

    (1) 두 리스트를 병렬로 반복하며 조건 체크

    scores = [90, 75, 88, 95]
    names = ["Alice", "Bob", "Charlie", "David"]
    
    for name, score in zip(names, scores):
        if score > 80:
            print(f"{name} passed with {score}.")
    

    출력:

    Alice passed with 90.
    Charlie passed with 88.
    David passed with 95.
    

    (2) 2D 좌표 생성

    두 개의 range()를 활용하여 (x, y) 좌표 쌍을 만들 수도 있습니다.

    for x, y in zip(range(0, 5), range(5, 0, -1)):
        print(f"({x}, {y})")
    

    출력:

    (0, 5)
    (1, 4)
    (2, 3)
    (3, 2)
    (4, 1)
    

    결론

    • range()를 활용하면 간편하게 숫자 시퀀스를 생성할 수 있다.
    • zip()을 활용하면 여러 리스트를 동시에 순회할 수 있다.
    • for, zip, range를 조합하면 반복문을 효율적으로 사용할 수 있으며, enumerate() 같은 대체 옵션도 존재한다.

    Python의 반복문을 자유롭게 활용하여 코드를 더욱 간결하고 강력하게 만들어 보세요! 🚀