Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 검색
- UDF
- AI 동화
- dask
- 조건문
- Redshift
- 아기동화
- 프롬프트 튜닝
- Azure
- 컨텍스트 매니져
- 퓨샷
- 도커
- 토끼
- GPT
- 동화책
- Compute
- 대스크
- 모험
- 파이썬
- Docker
- Cognitive Search
- 반복문
- Cognitive Service
- 인컨텍스트 러닝
- Python
- 제로샷
- 인자 힌트
- FOR
- Ai
- 파라미터 힌트
Archives
- Today
- Total
호랭이 분석가
[파이썬] 제너레이터와 yield를 활용한 데이터 처리 기법 본문
반응형
제너레이터는 데이터를 순회하는데 유용한 파이썬의 강력한 기능 중 하나입니다.
yield 키워드를 사용하여 제너레이터 함수를 정의하고,
이를 통해 메모리를 효율적으로 사용하면서 데이터를 순회하는 방법을 소개하겠습니다.
1. 제너레이터란? (Generator)
제너레이터는 이터레이터(Iterrator)를 생성하는 함수로, 데이터를 순회할 수 있는 객체를 만들어줍니다.
이터레이터와 비슷하지만, 이터레이터와 달리 모든 데이터를 미리 생성하지 않고,
필요할 때마다 데이터를 생성하면서 메모리를 효율적으로 사용할 수 있습니다.
2. 제너레이터 함수와 yield 키워드
제너레이터 함수는 일반 함수와 유사하지만, return 대신에 yield 키워드를 사용하여 데이터를 생성합니다.
yield 키워드는 일시적으로 함수의 실행을 멈추고 값을 반환한 후,
다시 호출되었을 때 이전 상태부터 계속 실행합니다.
def generator_function():
yield 1
yield 2
yield 3
3. 제너레이터 객체와 순회
제너레이터 함수를 호출하면 제너레이터 객체가 반환됩니다.
제너레이터 객체는 이터레이터 프로토콜을 따르기 때문에,
for 루프를 사용하여 데이터를 순회할 수 있습니다.
gen = generator_function()
for num in gen :
print(num)
4. 메모리 효율성
제너레이터는 필요한 데이터만 생성하므로 대용량의 데이터를 다룰 때 메모리를 효율적으로 사용합니다.
예를 들어, 무한수열을 다룰 때에도 메모리 오버플로우 없이 사용할 수 있습니다.
def infinite_sequence():
num = 0
while True:
yield num
num += 1
5. 제너레이터 표현식
리스트 컴프리헨션과 유사하게 제너레이터 표현식을 사용하여 제너레이터를 생성할 수 있습니다.
gen_expr = (x for x in range(5))
6. 제너레이터의 활용
- 파일 입출력
- 빅데이터 처리
- 무한수열
- 비동기 프로그래밍
위 상황 이외에도 다양한 상황에서 제너레이터가 유용하게 활용될 수 있습니다.
메모리를 효율적으로 사용하여 데이터를 처리할 수 있기 때문에 파이썬 프로그래밍에서 필수적인 요소입니다.
'Python' 카테고리의 다른 글
파이썬 예외 처리: try-except, else, finally 활용하기 (0) | 2023.07.31 |
---|---|
for문과 while문의 차이점과 break, continue, pass 활용하기 (0) | 2023.07.30 |
파이썬 함수 작성시 데이터 타입 힌트 활용하기 (0) | 2023.07.28 |
리스트 컴프리헨션과 조건문 (list comprehension and if-else) (0) | 2023.07.25 |
코드 실행 시간 측정하기 Decorator (Context Manager) (0) | 2023.07.23 |
Comments