Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

파이썬 루핑 기법 총정리: enumerate, zip, while까지 한눈에

파이썬에서 반복문(loop)을 작성하는 방법은 다양합니다. 이 튜토리얼에서는 파이썬 3.x 버전(및 이전 버전)에서 활용할 수 있는 대표적인 루핑 기법 다섯 가지를 예제 코드와 함께 살펴보겠습니다. 각 기법의 특징과 사용 시점을 이해하면 더 깔끔하고 효율적인 코드를 작성할 수 있습니다.

1. enumerate()를 활용한 열거형 반복

리스트나 문자열 같은 순회 가능한(iterable) 객체를 반복할 때 인덱스와 값을 동시에 얻고 싶다면 enumerate() 함수가 가장 좋은 선택입니다.

예제

# enumerate() 함수 사용
for index, value in enumerate(['Tutorial', 'point']):
    print(index, value)

실행 결과

0 Tutorial
1 point

인덱스를 별도 변수로 관리할 필요 없이 자동으로 함께 제공되므로, 코드가 간결해지고 실수를 줄일 수 있습니다.

2. zip()을 활용한 병렬 반복

두 개 이상의 리스트를 나란히 순회해야 할 때는 zip() 함수를 사용합니다. 여러 시퀀스의 요소를 묶어서 동시에 처리할 수 있습니다.

예제

# zip() 메서드 사용
arr1 = ['Tutorial', 'point']
arr2 = ['python', 'loops']
for i, j in zip(arr1, arr2):
    print(i, j)

실행 결과

Tutorial python
point loops

인덱스로 각 리스트에 접근하는 방식보다 가독성이 뛰어나며, 파이썬다운(Pythonic) 코드 스타일로 평가받습니다.

3. 멤버십 연산자를 활용한 직접 순회

가장 기본적이면서도 널리 쓰이는 방법은 컨테이너 객체를 직접 순회하는 것입니다. 파이썬의 for 문은 내부적으로 멤버십 개념에 기반해 동작합니다.

예제

# 멤버십 연산자 기반 순회
for i in ['Tutorial', 'point']:
    print(i)

실행 결과

Tutorial
point

리스트뿐만 아니라 튜플, 딕셔너리, 집합, 문자열 등 모든 iterable 객체에 동일하게 적용할 수 있습니다.

4. 무한 반복 구조

조건이 항상 참(True)인 while 문은 무한 루프를 만듭니다. 서버 데몬, 게임 루프, 이벤트 리스너처럼 프로그램이 계속 실행 상태를 유지해야 하는 경우에 활용됩니다.

예제

# 무한 루프
while True:
    pass

실무에서는 break 문이나 특정 조건 검사와 함께 사용해야 의도치 않은 무한 실행을 방지할 수 있습니다.

5. range()와 스텝(step)을 활용한 간격 반복

range() 함수에 세 번째 인자로 증가 폭(스텝)을 지정하면 일정한 간격으로 순회할 수 있습니다.

예제

# 스텝 증가값을 가진 range 사용
for i in range(0, 4, 2):
    print(i)

실행 결과

0
2

0부터 4 미만까지 2씩 증가하며 반복하므로 0과 2만 출력됩니다. 음수 스텝을 사용하면 역순 반복도 가능합니다.

마무리

지금까지 파이썬 3.x에서 사용할 수 있는 핵심 루핑 기법 다섯 가지를 알아보았습니다. enumerate()는 인덱스와 값이 필요할 때, zip()은 여러 시퀀스를 병렬로 처리할 때, 직접 순회는 단순 반복에, while True는 지속 실행이 필요할 때, 그리고 range()의 스텝은 간격 반복에 각각 활용하면 됩니다. 상황에 맞는 기법을 선택하면 더 읽기 쉽고 효율적인 파이썬 코드를 작성할 수 있습니다.