python2.x에서 range와 xrange의 차이가 뭐죠?

조회수 1855회

제가 써보니까 xrangerange보다 더 빠른 것 같던데 왜 그런 건지 잘 모르겠어요.

for i in range(0, 20): for i in xrange(0, 20): 이 둘의 차이는 뭔가요?

1 답변

  • 좋아요

    0

    싫어요
    채택 취소하기

    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의 rangexrange로 구현되어 있으며, xrange를 직접 쓰는 것은 지원하지 않습니다.

답변을 하려면 로그인이 필요합니다.

Hashcode는 개발자들을 위한 무료 QnA 사이트입니다. 계정을 생성하셔야만 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)

ᕕ( ᐛ )ᕗ
로그인이 필요합니다

Hashcode는 개발자들을 위한 무료 QnA사이트 입니다. 계정을 생성하셔야만 글을 작성하실 수 있습니다.