이 튜토리얼에서는 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/
'Programing > Python' 카테고리의 다른 글
Python에서 List 요소를 Filter(필터링) 하는 방법? (0) | 2023.03.08 |
---|---|
Python map() 함수 사용하여 List 요소를 변경하는 방법? (0) | 2023.03.08 |
Python List에서 요소와 인덱스를 찾는 방법?? (0) | 2023.03.07 |
Python 에서 For Loop 사용하여 List 반복하는 방법은 어떻게 하나요? (0) | 2023.03.07 |
Python unpacking은 어떻게 사용하는가? (0) | 2023.03.07 |
댓글