반응형
- iterator 객체 : 값을 차례대로 꺼낼 수 있는 객체이다.
- iterator는 iterable한 객체를 내장함수 또는 iterable객체의 메소드로 객체를 생성할 수 있다.
2020/03/10 - [Python] - [Python 3] iterable 란 무엇인가. 그리고 함수에는 map, zip?
파이썬 내장함수 iter() 를 사용해 iterator 객체를 만들 수 있다.
>>> a = [3,4,5,6,7,8]
>>> a_iter = iter(a)
>>> type(a_iter)
<class 'list_iterator'>
>>> b = "star"
>>> b_iter = iter(b)
>>> type(b_iter)
<class 'str_iterator'>
iterable객체의 메소드 __iter__ 로 iterator 객체를 만들 수 있다.
>>> b = "star"
>>> dir(b)
['__add__', '__class__', '__contains__', '__delattr__',
'__dir__', '__doc__', '__eq__', '__format__', '__ge__',
'__getattribute__', '__getitem__', '__getnewargs__', '__gt__',
'__hash__', '__init__', '__init_subclass__', '__iter__', '__le__',
'__len__', '__lt__', '__mod__', '__mul__', '__ne__', '__new__',
'__reduce__', '__reduce_ex__', '__repr__', '__rmod__', '__rmul__',
'__setattr__', '__sizeof__', '__str__', '__subclasshook__', 'capitalize',
'casefold', 'center', 'count', 'encode', 'endswith', 'expandtabs', 'find',
'format', 'format_map', 'index', 'isalnum', 'isalpha', 'isascii', 'isdecimal',
'isdigit', 'isidentifier', 'islower', 'isnumeric', 'isprintable', 'isspace',
'istitle', 'isupper', 'join', 'ljust', 'lower', 'lstrip', 'maketrans',
'partition', 'replace', 'rfind', 'rindex', 'rjust', 'rpartition',
'rsplit', 'rstrip', 'split', 'splitlines', 'startswith', 'strip',
'swapcase', 'title', 'translate', 'upper', 'zfill']
>>> b_biter = b.__iter__()
>>> type(b_biter)
<class 'str_iterator'>
iterator는 값을 차례대로 꺼낼 수 있는 객체다.
- 넣어진 순서대로 출력, 마지막엔 StopIteration 이라는 예외 발생.
>>> a = [3,4,5,6,7,8]
>>> a_iter = iter(a)
>>> type(a_iter)
<class 'list_iterator'>
>>> next(a_iter)
3
>>> next(a_iter)
4
>>> next(a_iter)
5
>>> next(a_iter)
6
>>> next(a_iter)
7
>>> next(a_iter)
8
>>> next(a_iter)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
StopIteration
마찬가지로 메소드 __next__()를 이용해서 끄낼 수 있음.
>>> b_biter.__next__()
's'
>>> b_biter.__next__()
't'
>>> b_biter.__next__()
'a'
>>> b_biter.__next__()
'r'
>>> b_biter.__next__()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
StopIteration
참고
반응형
'컴퓨터 언어 > Python' 카테고리의 다른 글
[python 3] 미니콘다(miniconda)설치 후 환경변수 설정하기. (0) | 2020.03.27 |
---|---|
[ Python 3 ] Enumerate 함수란. (다양한 자료형 적용 예시) (0) | 2020.03.13 |
[Python 3] iterable 란 무엇인가. filter(), map(), zip(), sorted (0) | 2020.03.10 |
[Python 3] Range , sorted , sort 란 무엇인가. (0) | 2020.03.10 |
[Python 3] random 모듈 (random, uniform , randint , randrange , choice , sample , shuffle) (0) | 2020.03.10 |