Table of Contents
728x90
3까지는 가능하지만 4부터는 에러가 난다 더 이상 뽑을게 없으니깐.
for문에 넣어서 iterator1의 값들을 print해주고 싶지만
이미 앞에서 iterator1을 next에 넣어서 사용했기 때문에 더이상 사용할 수 없다.
이터레이터는 일회성 특징을 가진다
그래서 print(a)가 아무것도 나오지 않는다.
이터레이터를 다시 정의시키고 for문을 돌리면 정상적으로 1,2,3 값을 프린트한다.
- 이터레이터는 iter()로 정의하고 next()로 다음값을 뽑는다.
- 이터레이터는 한 번 사용하면 다시 사용할 수 없다.
- 메모리 효율을 위해 그때 그때 필요한 값을 뽑아쓸 때 사용한다.
예를 들어 음식점에 가서 번호표를 뽑아야 한다고 생각해보자.
만약 우리가 기존의 for문을 돌리면 1부터 100까지 번호표가 한번에 촤라락 나올 것이다.
그런데 iterator를 쓰면
띵동 1번 고객님 입장하세요 (몇 분 후)
띵동 2번 고객님 입장하세요 (20분 후)
띵동 3번 고객님 입장하세요
이렇게 순차적으로 1번 2번 숫자를 출력할 수 있다.
아래 처럼 응용코드를 작성해보자.
next(mygen)을 실행할 때 마다 1번째, 2번째 순차적으로 숫자가 출력된다.
위에서는 iter를 따로 만들지 않았지만 yield라는 제너레이터를 썼다.
yield는 이터레이터를 생성해주는 함수이다.
따라서 yield를 쓰면 iter를 쓸 필요가 없다.
yield 키워드를 사용하면 Python에서 자동으로 이터레이터를 생성하기 때문이다.
yield와 next만 활용하면 된다.
'Python' 카테고리의 다른 글
문자열 처리 str / repr (1) | 2024.04.21 |
---|---|
Type Annotation Convention을 따르자 (0) | 2024.04.21 |
클래스Class / 클로저Closure / 데코레이터Decorator (1) | 2024.04.20 |
Numpy Array를 쌓기 (0) | 2024.04.20 |
Numpy Array 쪼개기 (0) | 2024.04.20 |
250x250
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- LLM
- nlp
- 티스토리챌린지
- git
- #패스트캠퍼스 #패스트캠퍼스AI부트캠프 #업스테이지패스트캠퍼스 #UpstageAILab#국비지원 #패스트캠퍼스업스테이지에이아이랩#패스트캠퍼스업스테이지부트캠프
- classification
- Transformer
- Numpy
- 오블완
- clustering
- 해시
- Lora
- English
- #패스트캠퍼스 #패스트캠퍼스ai부트캠프 #업스테이지패스트캠퍼스 #upstageailab#국비지원 #패스트캠퍼스업스테이지에이아이랩#패스트캠퍼스업스테이지부트캠프
- t5
- RAG
- Hugging Face
- Python
- 코딩테스트
- 손실함수
- 리스트
- Array
- LIST
- speaking
- cnn
- recursion #재귀 #자료구조 # 알고리즘
- Github
- #패스트캠퍼스 #UpstageAILab #Upstage #부트캠프 #AI #데이터분석 #데이터사이언스 #무료교육 #국비지원 #국비지원취업 #데이터분석취업 등
- 파이썬
- PEFT
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함