iterable, iterator

Nam Eun-Ji·2020년 11월 14일
0

python-비동기

목록 보기
1/4
post-custom-banner

iterable

  • 반복가능한 객체
  • iterable type: list, dict, set, tuple, str, bytes, range

iterator

  • next() 메소드로 데이터를 순차적으로 호출 가능한 객체
  • 만약 next()로 다음 데이터를 불러올 수 없을 경우(가장 마지막 데이터인 경우) StopIteration exception을 발생시킨다.
  • iterable하다고 해서 반드시 iterator이지는 않다.

iterable → iterator

만약 iterable을 iterator로 변환하고 싶다면

  • iter()
  • __iter__()
>>> a = [1,2,3]
>>> aa = iter(a)
>>> aaa = a.__iter__()
>>> type(aa)
<class 'list_iterator'>
>>> type(aaa)
<class 'list_iterator'>

next(), next()

  • 내부의 요소를 하나씩 가져오기 위해 사용
  • 더이상 가져올게 없으면 StopIteration 예외를 발생시킨다.
>>> a = iter([1,2,3])
>>> next(a)
1
>>> next(a)
2
>>> next(a)
3
>>> next(a)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
StopIteration

예) csv파일에 헤더행을 제외한 다음부터 읽고 싶을 때(지정된 csvfile의 줄을 이터레이트 하는 판독기(reader) 객체를 반환)

import csv

with open('test.csv', 'r', encoding='utf-8') as fp:
    reader = csv.reader(fp)
    header = next(reader)
    for line in reader:
        print(line)
profile
한 줄 소개가 자연스러워지는 그날까지
post-custom-banner

0개의 댓글