본문 바로가기
파이썬

python itertools모듈.메모리를 절약해줄수있다.

by 혜룐 2015. 11. 10.

이 모듈은 모든 데이터가 준비되어 있는 상태에서 자료를 처리하는것보다 메모리를 절약해줄수있다. 파이썬 2.2에서 도입된것으로 많은양의 자료를 처리할때 자료를 모두 메모리에 올리지 않고 순차적으로 반복처리하는것이 가능하게 되었다. 당연히 자료의크기가 크면 클수록 효과가 좋다.
한예로 zip 과 izip.
zip()은 두 시퀀스 자료형을 묶어준다.
itertools.izip()은 마찬가지로 두 시퀀스 자료형을 묶어준다.
하지만 zip()처럼 전체를 한꺼번에 묶는 것이 아니라,
iterator 패턴으로 요청이 올 때마다 묶어서 반환한다.
또 chain(list1, list2)과 (list1, list2)
chain은 리스트1과 리스트2에대해 연속된 데이터를 넘겨준다.
(리스트1,리스트2)는 새로운 리스트를 생성하기때문에 메모리를 낭비한다.