Python/파이썬 심화

파이썬 시퀀스 (2)

monstro 2025. 8. 5. 20:35
728x90
반응형

- 개요

시퀀스순서를 가지는 데이터의 집합을 의미함으로써, 데이터를 메모리에 저장하고 인덱스를 통해 접근한다

그러나 필요하지 않은 데이터까지 전부 저장하는 것은 불필요한이다

이럴때 Iterator를 사용하면 메모리를 효율적으로 사용할 수 있다

Iterator데이터를 메모리에 전부 저장하지 않고 순회하면서 필요한 데이터만 생성한다

 

Generator 함수를 통해 Iterator 인스턴스를 생성할 수 있다

다른 함수와 다르게 return이 아닌 yield 함수를 통해 을 반환한다

또한 함수 내부의 로컬 변수를 사용하여 함수의 상태를 저장할 수 있다

 

즉, Generator로 생성Iterator 인스턴스한번에 하나씩 생성되어 을 할당받으며

할당받은 값의 상태를 유지하지만 순회가 끝나면 재사용할 수 없다

 

1) 튜플에 대한 Generator 예제

chars = "abcdefghijklmnopqrstuvwxyz"

tuple_generator = (ord(s) for s in chars)
print(tuple_generator)
print(type(tuple_generator))
print(next(tuple_generator))
print(next(tuple_generator))

 

Generator간단하게 리스트 컴프리헨션소괄호로 묶어서 호출할 수 있다

Generator로 생성된 Iterator의 값을 가져오기 위해서는 next 함수를 사용한다

 

 

실행 결과는 위와 같다

생성된 tuple_generatortuple_generator의 타입을 출력해보면 generator로 출력되는 것을 확인할 수 있다

값이 저장되어 97 이후 98의 값이 출력되는 것 또한 확인이 가능하다

 

2) array에 대한 Generator 예제

import array

array_generator = array.array('I', (ord(s) for s in chars))
print(array_generator)
print(type(array_generator))
print(array_generator.tolist())

 

array는 list와 다르게 단일 자료형의 데이터만 저장할 수 있다

따라서 위와 같이 인자를 설정하여 정수형 데이터의 Iterator를 저장하도록 하였다

이후 생성한 Iterator와 타입을 확인하고, array로부터 tolist 함수를 호출하여 리스트로 변환하여 출력한다

 

 

출력 결과는 위와 같다

array이므로 array가 출력되었고, 리스트로 변환한 결과도 출력되는 것을 확인할 수 있다

728x90
반응형

'Python > 파이썬 심화' 카테고리의 다른 글

파이썬 시퀀스 (4)  (0) 2025.08.07
파이썬 시퀀스 (3)  (0) 2025.08.05
파이썬 시퀀스 (1)  (0) 2025.08.05
네임드 튜플 (2)  (0) 2025.08.04
네임드 튜플 (1)  (0) 2025.08.04