> 백엔드 개발 > 파이썬 튜토리얼 > Python 2.X의 Range와 xrange: 차이점은 무엇입니까?

Python 2.X의 Range와 xrange: 차이점은 무엇입니까?

Mary-Kate Olsen
풀어 주다: 2024-12-05 08:41:10
원래의
679명이 탐색했습니다.

Range vs. xrange in Python 2.X: What's the Difference?

Python 2.X에서 range와 xrange 함수의 차이점 이해

Python 2.X는 일련의 숫자를 생성하기 위해 range와 xrange라는 두 가지 함수를 제공합니다. 둘 다 비슷한 목적을 수행하지만 특히 메모리 사용량과 효율성 측면에서 뚜렷한 특징을 보입니다.

range

range 함수는 메모리를 할당하는 목록을 생성합니다. 전체 시퀀스를 한 번에 저장합니다. 이는 메모리에 맞지 않는 대규모 시퀀스의 경우 비효율적일 수 있습니다. 예를 들어, range(1, 10000000)은 9999999개의 요소가 포함된 목록을 생성하므로 상당한 메모리를 소비할 수 있습니다.

xrange

반면에 xrange 함수는 시퀀스를 생성합니다. 느리게 평가하는 객체. 전체 시퀀스를 메모리에 미리 저장하지 않습니다. 대신 필요에 따라 즉시 각 요소를 계산합니다. 이는 특히 대규모 시퀀스의 경우 xrange의 메모리 효율성을 높여줍니다.

효율성에 미치는 영향

xrange의 지연 평가를 사용하면 특히 대규모 시퀀스의 경우 range보다 속도가 빨라집니다. 전체 시퀀스에 대해 메모리를 할당할 필요가 없으므로 오버헤드가 줄어듭니다. 이는 시퀀스가 ​​한 번만 반복되는 루프 또는 목록 이해에서 특히 두드러집니다.

기타 차이점

메모리 사용량 및 효율성 외에도 몇 가지 다른 차이점이 있습니다. range와 xrange의 차이점:

  • Python 2.X에서 xrange는 음수 단계 값을 처리할 수 없습니다. range는 가능합니다.
  • Python 3에서는 range가 xrange를 대체했습니다. xrange를 호출하면 NameError 예외가 발생합니다. Python 2.X에서 xrange처럼 동작하는 시퀀스 객체를 생성하려면 stop 인수가 None으로 설정된 range를 사용하세요.

위 내용은 Python 2.X의 Range와 xrange: 차이점은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿