본문 바로가기
Programing/Python

Python Iterables(반복자) 사용방법??

by 멍멍돌이야 2023. 3. 7.
반응형

이 튜토리얼에서는 Python iterables 및 iterators에 대해 배웁니다.

 

1. Python iterables 소개

Python에서 iterable은 0개, 1개 또는 많은 요소를 포함하는 객체입니다. iterable은 한 번에 하나씩 요소를 반환하는 기능이 있습니다.

이 기능 때문에 for 루프를 사용하여 iterable을 반복할 수 있습니다.

실제로 range() 함수는 결과를 반복할 수 있기 때문에 반복 가능합니다.

for index in range(3):
    print(index)

Output:

0
1
2

또한 for 루프를 사용하여 반복할 수 있기 때문에 문자열은 반복 가능합니다.

str = 'Iterables'
for ch in str:
    print(ch)

목록과 튜플도 루프를 돌 수 있기 때문에 이터러블입니다. 

사용예:

ranks = ['high', 'medium', 'low']

for rank in ranks:
    print(rank)

경험 법칙은 무언가를 반복할 수 있는지 알면 반복 가능하다는 것입니다.

 

2. 반복자란?

iterable은 반복될 수 있습니다. 반복자는 반복을 수행하는 에이전트입니다.

iterable에서 iterator를 얻으려면 iter() 함수를 사용합니다. 

사용예:

colors = ['red', 'green', 'blue']
colors_iter = iter(colors)

iterator가 있으면 next() 함수를 사용하여 iterable에서 다음 요소를 가져올 수 있습니다.

colors = ['red', 'green', 'blue']
colors_iter = iter(colors)

color = next(colors_iter)
print(color)

Output:

red

next() 함수를 호출할 때마다 iterable의 다음 요소를 반환합니다. 

사용예:

colors = ['red', 'green', 'blue']
colors_iter = iter(colors)

color = next(colors_iter)
print(color)

color = next(colors_iter)
print(color)

color = next(colors_iter)
print(color)

Output:

red
green
blue

더 이상 요소가 없고 next() 함수를 호출하면 예외가 발생합니다.

colors = ['red', 'green', 'blue']
colors_iter = iter(colors)

color = next(colors_iter)
print(color)

color = next(colors_iter)
print(color)

color = next(colors_iter)
print(color)

# cause an excpetion
color = next(colors_iter)
print(color)

이 예는 먼저 색상 목록의 세 가지 요소를 표시한 다음 예외를 발생시킵니다.

red
green
blue
Traceback (most recent call last):
  File "iterable.py", line 15, in <module>
    color = next(colors_iter)
StopIteration

반복자는 상태 저장입니다. 반복자에서 요소를 소비하면 사라진다는 의미입니다.

즉, 반복자에 대한 루프를 완료하면 반복자는 비게 됩니다. 다시 반복하면 아무 것도 반환하지 않습니다.

반복자를 반복할 수 있으므로 반복자도 반복 가능한 객체입니다. 이것은 매우 혼란 스럽습니다. 

사용예:

colors = ['red', 'green', 'blue']
iterator = iter(colors)

for color in iterator:
    print(color)

Output:

iter() 함수를 호출하고 반복자를 전달하면 동일한 반복자를 반환합니다.

나중에 반복 가능 항목을 만드는 방법을 배웁니다.

 

3. Summary

  • Iterable은 반복할 수 있는 객체입니다. iterable은 한 번에 하나의 요소를 반환하는 기능이 있습니다.
  • 반복자는 반복을 수행하는 에이전트입니다. 상태 저장입니다. 그리고 이터레이터도 이터러블 객체입니다.
  • iter() 함수를 사용하여 반복 가능한 객체에서 반복자를 가져오고 next() 함수를 사용하여 반복 가능한 객체에서 다음 요소를 가져옵니다.
         
         
refreance: https://www.pythontutorial.net/python-basics/python-iterables/
728x90
반응형

댓글