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의 반복문을 자유롭게 활용하여 코드를 더욱 간결하고 강력하게 만들어 보세요! 🚀


코멘트

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다