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

Python 반복문 완벽 가이드: 효율적인 이터레이션 구현 5가지 방법


이 글에서는 Python 3.x(그 이하 버전 포함)에서 이터레이터를 구현하고 효과적으로 활용하는 방법을 알아봅니다. Python에서 반복 작업을 수행할 수 있는 다양한 방법을 하나씩 살펴보겠습니다.

방법 1 – 길이를 미리 아는 경우: while 루프

예제 코드

genre = ("Python", "C", "C++", "Java")
print("튜토리얼 포인트에서 다루는 주제:")
i = 0
while (i < len(genre)):
   print(genre[i])
   i += 1

설명

이 방식은 코드가 비교적 장황하고 간결하지 못해 선호되지 않습니다. 인덱스 변수를 직접 관리해야 하고 오류 처리도 까다롭기 때문에 대규모 프로그램이나 체계적인 설계에서는 거의 사용되지 않습니다.

실행 결과

튜토리얼 포인트에서 다루는 주제:
Python
C
C++
Java

방법 2 – 길이를 미리 아는 경우: for 루프와 range()

예제 코드

genre = ("Python", "C", "C++", "Java")
print("튜토리얼 포인트에서 다루는 주제:")
for i in range(len(genre)):
   print(genre[i])

설명

많은 프로그래머들이 선호하는 대표적인 방법입니다. range() 함수가 이터레이터를 증감시키는 역할을 하며, 기본적으로 인덱스를 1씩 증가시킵니다. 필요하다면 세 번째 인자로 증감 폭(step)을 지정해 원하는 간격으로 순회할 수도 있습니다.

실행 결과

튜토리얼 포인트에서 다루는 주제:
Python
C
C++
Java

방법 3 – 길이 없이 순회하는 for 루프

예제 코드

genre = ("Python", "C", "C++", "Java")
print("튜토리얼 포인트에서 다루는 주제:")
for i in genre:
   print(i)

설명

리스트, 딕셔너리, 튜플, n차원 배열 같은 선형 자료구조를 순회할 때 가장 널리 쓰이는 파이썬다운 방식입니다. 이터레이터가 자료구조의 각 요소를 자동으로 순회하며 콘솔에 데이터를 출력하고, 인덱스 증감을 개발자가 직접 관리할 필요가 없다는 점이 큰 장점입니다.

실행 결과

튜토리얼 포인트에서 다루는 주제:
Python
C
C++
Java

방법 4 – enumerate() 활용

예제 코드

genre = ("Python", "C", "C++", "Java")
iterator = enumerate(genre)
print("튜토리얼 포인트에서 다루는 주제:")
for i, v in iterator:
    print(v, end="\t")

설명

enumerate()는 요소와 그 인덱스를 하나의 쌍으로 묶어주는 이터레이터를 생성합니다. 덕분에 인덱스와 값을 동시에 다룰 수 있으며, 이를 위해 인덱스용 변수와 값용 변수 두 개를 지정해야 합니다. 인덱스 정보가 필요한 반복 작업에서 특히 유용합니다.

실행 결과

튜토리얼 포인트에서 다루는 주제:
Python	C	C++	Java

방법 5 – zip() 함수 활용

예제 코드

genre = ("Python", "C", "C++", "Java")
extras = ["C#", "Dart", "Erlang", "Go"]
print("튜토리얼 포인트에서 다루는 주제:")
for i, j in zip(genre, extras):
    print(i, j, sep="\t")

설명

zip() 함수를 사용하면 리스트, 배열, 튜플 등 두 개의 선형 자료구조를 동시에 순회할 수 있습니다. 여러 시퀀스를 병렬로 처리해야 하는 다양한 상황에서 매우 유용합니다. zip()은 더 짧은 자료구조의 길이에 맞춰 순회를 종료하므로, 긴 쪽의 남은 요소는 자동으로 건너뛰게 됩니다.

실행 결과

튜토리얼 포인트에서 다루는 주제:
Python	C#
C	Dart
C++	Erlang
Java	Go

마무리

지금까지 Python 3.x에서 반복문과 이터레이터를 구현하는 5가지 방법을 살펴보았습니다. 상황과 자료구조의 특성에 맞는 반복 방식을 선택하면 코드의 가독성과 효율성을 모두 높일 수 있습니다. 소개한 패턴들은 다른 프로그래밍 언어에서도 유사한 형태로 응용할 수 있으니, 직접 실습하며 각 방법의 차이를 확인해 보시기 바랍니다.