iteration
'반복'을 의미한다.
1. 파이썬에서 어떤 객체(object)가 iterable 하다고 할때는 다음 2가지 경우이다.
1) 물리적으로 저장된 sequence (차례)
2) for loop와 같은 iteration tool 환경에서 한번에 하나씩 결과를 만들어 내는 객체
2. 일반적인 성질, iterator
__next__ method를 통하여 한번에 하나씩 다음 결과로 진행하며 끝에 도달할 경우 StopIteration 에러를 발생시키는 모든 객체를 iterator 라고 한다.
3. iterable object, iterator, full iteration protocol
iterable object란 object.__iter__() 나 iter(object) 와 같은 방법으로 iterator를 만들 수 있는 객체를 말한다.
iterator란 object.__next__() 나 next(object) 와 같은 방법으로 차례대로 결과를 내고 끝에가서 StopIteration 을 발생시키는 객체를 발한다.
iterable object로부터 iterator object를 만들어 낸다.
아래에 예제에서 l 이 iterable object이며, a와 b가 iterator objects이다.
In [44]: l=list(range(10))
In [45]: l
Out[45]: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
In [46]: a=iter(l)
In [47]: next(a)
Out[47]: 0
In [48]: next(a)
...:
Out[48]: 1
In [49]: next(a)
Out[49]: 2
In [50]: next(a)
Out[50]: 3
In [51]: b=l.__iter__()
In [52]: next(b)
Out[52]: 0
4. single vs multiple iterator
range object와 같은 것은 여러개의 iterator를 만들 수 있지만 map,zip,filter는 한개의 iterator만 만들 수 있다
'Python' 카테고리의 다른 글
jupyter notebook 테마적용 (0) | 2020.01.26 |
---|---|
( ) = ( ) if ( ) else ( ) 구문 (0) | 2019.12.27 |
변수명 (0) | 2019.12.27 |
python statements (0) | 2019.12.27 |
binary data pack unpack examples (0) | 2019.12.27 |