이 자료는 네이버 부스트 코스에서 제공하는 자료로 만들어졌습니다.
- iterable object (데이터를 순서대로 출력)
- Sequence형 자료형에서 데이터를 순서대로 추출하는 object
이러한 iterabl 데이터는 내부적으로
- 내부적 구현으로 __iter__ 와 __next__ 가 사용됨
- iter() 와 next() 함수로 iterable 객체를 iterator object로 사용
다음 주소를 가지고 있다고 생각하면 쉽다.
- generator
- iterable object를 특수한 형태로 사용해주는 함수
- element가 사용되는 시점에 값을 메모리에 반환 : yield를 사용해 한번에 하나의 element만 반환함
genrator 를 사용해서 하게 된다면 메모리상에서 이득이 있다고 한다.(사실 개념이 아직 어렵다!)
쉽게 말해서 메모리에 한번에 다 올려 두는 것이 아니라. 위의 왼쪽 함수처럼 오른쪽으로 작성한다면 호출할 때만 메모리에 올리게 됨으로 메모리를 적게 사용한다고 한다. 부를 때 마다 다음꺼 보내주는 식이다.
- generator comprehension
- list comprehension과 유사한 형태로 generator형태의 list 생성
- generator expression 이라는 이름으로도 부름
- [ ] 대신 ( ) 를 사용하여 표현
튜프리알 비슷하게 생겼지만 아니다. () 를 사용해서 만들면 된다.
gen_ex = (n*n for n in range(500))
print(type(gen_ex))
>>> <class 'generator'>
메모리를 확실히 조금 쓴다.
반응형
'AI > python AI' 카테고리의 다른 글
python - Object Oriented Programming (객체 지향 프로그래밍) (0) | 2022.06.01 |
---|---|
python - function passing arguments (0) | 2022.05.30 |
python - lambda & map & reduce (0) | 2022.05.30 |
python - enumerate,zip (0) | 2022.05.30 |
python- split & join (0) | 2022.05.30 |