본문 바로가기
Python/Python

[Python] 이터레이터(iterator)와 제너레이터(generator)

by 기록하는_사람 2022. 10. 11.

이터레이터(iterator)

📌 이터레이터(iterator)

: 순회 가능한 객체(list, tuple, str 등)의 요소에 순서대로 접근할 수 있는 객체.

  첫 요소를 가져오고 다음 요소를 가리킴.

  

📌 iter( )

: 순회 가능한 객체(list, tuple, str 등)에서 이터레이터(iterator)  객체를 가져옴.

 

📌 이터레이터(iterator)의 다음 요소 가리킴.

__next__( ) : 이터레이터(iterator) 객체 메소드.

next( ) : 내장 함수.

s = 'hello'
it = iter(s)

print(it) # <str_iterator object at 0x0000023655BC7C40>

print(next(it)) # h
print(next(it)) # e
print(next(it)) # l
print(it.__next__()) # l
print(it.__next__()) # o

 

제너레이터(generator)

📌 제너레이터(generator)

: 이터레이터(iterator)를 생성해주는 함수.

  yield

 

📌 return 대신 사용하면 함수를 끝내지 않고 호출한 곳으로 값을 전달함.

  

📌 yield는 이전에 실행된 지점부터 다시 실행함.

def reverse(data):
    for i in range(len(data) - 1, -1, -1):
        yield data[i]

for i in reverse("hello"):
    print(i)
    
# o
# l
# l
# e
# h

'Python > Python' 카테고리의 다른 글

[Python] 상속  (0) 2022.10.11
[Python] 내장 함수  (1) 2022.10.11
[Python] 얕은 복사와 깊은 복사  (1) 2022.10.11
[Python] mutable과 immutable 객체  (0) 2022.10.11
[Python] sys.stdin.readline()  (0) 2022.10.04

댓글