본문 바로가기
Python

python range()와 xrange() (메모리 효율성)

by dharana7723 2021. 6. 20.

흔히 파이썬에서 주로 사용하는 반복문은 for i in range(10)와 같은 형태입니다.

이는 반환 형태가 리스트입니다.

즉 범위가 10, 이라면 0-9에 해당하는 수가 모두 리스트형태 내부에 존재합니다.

 

그러나 xrange()는 안에 몇을 선언하든 그 크기가 같습니다.

 

즉 리스트형태로 모든 값을 가지고 시작하는 것이 아니라

generator와 yield처럼 해당 값에 접근할때마다 데이터를 로드하는 형식으로 작동합니다.

 

따라서 list에서 사용하는 다양한 형태의 함수를 사용하지 못하지만,

단순히 인덱스나 순차적 접근을 사용한다면 xrange()가 메모리를 보다 효율적으로 사용할 수 있습니다.

 

 

참조:

https://bluese05.tistory.com/57