python2.x에서 range와 xrange의 차이가 뭐죠?
조회수 3631회
제가 써보니까 xrange
가 range
보다 더 빠른 것 같던데 왜 그런 건지 잘 모르겠어요.
for i in range(0, 20):
for i in xrange(0, 20):
이 둘의 차이는 뭔가요?
1 답변
-
python 2.x에서 둘의 차이를 간단하게 설명하면,
- type(range(start,end)) = list
- type(xrange(start,end)) = xrange
입니다.
더 자세히 설명하면,
range(1, 10000000)
는 메모리에 9999999개의 원소가 있는 리스트를 생성하기 때문에 범위가 넓어질수록 메모리가 더 많이 필요한 반면,xrange(1, 10000000)
메모리에 immutable(변하지 않는) sequence를 생성하기 때문에 범위와 관계없이 항상 같은 크기의 메모리를 사용합니다.그 외의 퍼포먼스 차이는 없습니다.
다만, python 3.x의
range
는xrange
로 구현되어 있으며,xrange
를 직접 쓰는 것은 지원하지 않습니다.
댓글 입력