일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- Algospot
- C언어
- 따라하면서 배우는 C언어
- web
- 백준
- Cleancode
- graph
- Math
- dfs
- programmers
- sorting
- 인프런
- server
- String
- BOJ
- C
- Algorithm
- 따라하며 배우는 C언어
- greedy
- 정수론
- BASIC
- 생활코딩
- BFS
- 종만북
- php
- udemy
- 따배씨
- DP
- JavaScript
- Python
- Today
- Total
몽상실현개발주의
[Python] Iterator / Iterable 본문
1. Iterator
Python Doc An object representing a stream of data. Repeated calls to the iterator’s __next__() method (or passing it to the built-in function next()) return successive items in the stream. When no more data are available a StopIteration exception is raised instead. At this point, the iterator object is exhausted and any further calls to its __next__() method just raise StopIteration again. |
Iterator 는 반복 가능한 객체, 반복문을 활용해서 데이터를 순회하면서 처리 가능한 객체를 의미.
next() 메소드로 데이터를 순차적으로 호출 가능한 object.
next() 로 다음 데이터를 불러 올수 없을 경우 (마지막 데이터인 경우) StopIteration exception 이 발생.
sample_list = [1, 2, 3]
print(type(sample_list))
# <class 'list'>
iterator_list = iter(sample_list) # Iterable -> Iterator 변환
print(type(iterator_list))
# <class 'list_iterator'>
print(next(iterator_list))
# 1
print(next(iterator_list))
# 2
print(next(iterator_list))
# 3
print(next(iterator_list))
# StopIteration
# 예외발생
2. Iterable
Python Doc An object capable of returning its members one at a time. Examples of iterables include all sequence types (such as list, str, and tuple) and some non-sequence types like dict, file objects, and objects of any classes you define with an __iter__() method or with a __getitem__() method that implements Sequence semantics. Iterables can be used in a for loop and in many other places where a sequence is needed (zip(), map(), …). When an iterable object is passed as an argument to the built-in function iter(), it returns an iterator for the object. This iterator is good for one pass over the set of values. When using iterables, it is usually not necessary to call iter() or deal with iterator objects yourself. The for statement does that automatically for you, creating a temporary unnamed variable to hold the iterator for the duration of the loop. See also iterator, sequence, and generator. |
iterable 객체라는 것은 iterator 객체로 변환이 가능한 객체를 의미.
member를 하나씩 차례로 반환 가능하며, sequence type인 list, str, tuple 이 대표적이다.
for 문의 range 를 사용 할 때, range로 생성된 list가 iterable 객체이기 때문에 차례대로 member를 불러와서 사용할 수 있다.
non-sequence type 인 dict 나 file 도 for 문을 이용해 순차적으로접근이 가능하기 때문에, iterable 하다고 할 수 있다.
iterable 은 for loop 말고도, zip(), map()과 같이 sequence 한 특징을 필요로 하는 작업에 유용하게 사용된다.
zip([iterable, ...]) This function returns a list of tuples, where the i-th tuple contains the i-th element from each of the argument sequences or iterables. |
map(function, iterable, ...) Apply function to every item of iterable and return a list of the results. |
zip() 이나 map() 의 argument 는 iterable 객체로 정의되어 있다.
- 참고 블로그
itholic.github.io/python-iterable-iterator/
nvie.com/posts/iterators-vs-generators/
'Language > Python' 카테고리의 다른 글
[Python] List / Set / Dictionary Method 의 시간 복잡도 (0) | 2021.05.23 |
---|