Python xrange 대 범위

Python Xrange Vs Range



Python 버전 2.x까지 제공된 범위 내에서 정수 목록을 생성하기 위해 이 언어에서 총 두 가지 기본 메서드가 사용되었습니다. 두 가지 방법은 다음과 같습니다.

범위 ()
범위()







앞으로 Python 최신 버전(3 이상)에서는 range()가 철회되고 xrange()가 range()로 변경되었습니다. 이제 Python 3에는 이 메서드에 대한 함수가 하나만 있습니다. 즉, 범위()입니다. Python 3에서 range() 함수는 python 2.x의 xrange() 이전 버전을 구현하는 또 다른 방법입니다. 여기에서 우리는 두 가지를 관련시킬 것입니다.



엑스레인지()

xrange()는 range() 함수와 같은 숫자 시퀀스를 만드는 데 사용됩니다.



통사론

xrange()를 정의하는 데 사용되는 구문은 다음과 같습니다.





엑스레인지(시작,,단계)

이 함수는 (포함됨)부터 끝까지(포함되지 않음)까지의 숫자 범위를 정의하는 데 사용됩니다.

매개변수

다음은 필수 매개변수 목록입니다.



 시작: 숫자 시퀀스의 시작 위치
 End: 숫자 시퀀스의 끝 위치
 단계: 시리즈에서 연속된 두 숫자 사이의 구별.

다음 예제에서는 xrange를 정의하는 방법을 확인합니다.

여기서는 끝 위치만 지정합니다.

따라서 끝 값은 5로 설정되고 아래와 같이 끝 위치가 인쇄됩니다.

이제 range를 호출하는 방법을 볼 것입니다. end를 호출하는 구문은 다음과 같습니다.

>>>NS= 엑스레인지()

그럼 인쇄해드리겠습니다.

위와 같이 출력 범위를 얻을 수 있습니다.

이제 시작점과 끝점을 모두 정의합니다. 여기에서 시작점은 2이고 끝점은 5입니다. 그런 다음 아래와 같이 시작점과 끝점을 인쇄했습니다.

그런 다음 시작점과 끝점, 즉 2에서 5까지 일련의 숫자를 만듭니다.

>>>그리고= 엑스레인지(시작,)

마지막으로 시작점, 단계, 끝점을 정의하는 방법을 살펴보겠습니다. 세 가지 매개변수를 모두 정의했으면; 아래에 표시된 방법과 유사하게 호출할 것입니다.

이제 이 세 가지 매개변수에 대해 xrange를 호출하기 위해 다음 구문을 사용합니다.

>>>와 함께= 엑스레인지(시작,단계,)

범위 ()

범위()는 목록을 만드는 데 사용되며 여러 반복에 대해 더 빠른 함수입니다.

통사론

다음 구문이 사용됩니다.

>>> 범위(시작,,단계)

첫 번째 경우에는 최종 값을 정의합니다. 이에 사용되는 구문은 다음과 같습니다.

>>> 범위()

따라서 아래의 예에서는 범위의 끝 값으로 3을 사용합니다. 인쇄되면 최종 값을 제외한 값을 반환합니다.

다음 예에서는 시작점과 끝점을 설명하는 예를 사용하고 있습니다. 값은 1에서 시작하여 10에서 끝납니다(제외). 시작점은 포함되지만 끝점은 생략됩니다. 구문은 다음과 유사합니다.

>>> 범위 (시작,)

따라서 시작점을 정의한 다음 끝점을 각각 1과 10으로 정의합니다.

이제 다음 예제에서는 단계 함수를 사용합니다. 시퀀스 내에서 두 점 사이의 간격을 정의하는 함수입니다. 값은 0에서 시작하여 10에서 끝납니다(제외). 사용된 구문은 다음과 같습니다.

>>> 범위 (시작,단계,)

예가 아래에 나와 있으며, 여기서 2는 단계 값입니다.

장점

범위 ()

반복을 여러 번 수행해야 하는 경우 더 빠릅니다. 범위()에는 실시간 정수 개체 값만 ​​있습니다. 메모리 측면에서 잘 실행되지 않습니다.

범위()

매번 정수 객체를 다시 생성해야 합니다. xrange()는 슬라이스와 목록 메서드를 지원하지 않기 때문에 그렇지 않습니다. xrange()는 동일한 양의 메모리를 사용합니다. 따라서 성능에 관한 한, 특히 사용자가 더 큰 범위 값을 반복할 때 xrange()가 훨씬 더 잘 수행됩니다.

Python 2와 Python 3 범위 및 xrange의 유사점

Python 2의 xrange는 문자열 형태의 설명적인 표현을 가지고 있으며, 이는 Python 3의 범위 객체 값과 매우 유사합니다.

Python 2의 xrange() 값은 반복 가능하며 Python 3의 rang()도 마찬가지입니다.

xrange() 및 range() 둘 다 단계, 끝 및 시작점 값이 있습니다. 두 경우 모두 단계는 선택적 필드이므로 시작 값도 마찬가지입니다.

Python 2 및 3의 xrange는 모두 정방향 또는 역순으로 인덱싱할 수 있는 길이를 지원합니다. 다음은 동일한 예입니다.

range()와 xrange()의 차이점

xrange()는 지연 평가에 필요한 값으로 생성기 객체만 평가하므로 range()에 대해 구현하는 것이 더 빠릅니다. range()는 목록을 반환하는 데 도움이 되며 사용할 수 있는 모든 개체가 있는 반면 xrange()는 목록과 관련된 개체를 반환하고 적용할 수 없으므로 단점으로 간주할 수 있습니다.

range() 함수에서 사용하는 변수는 range의 값을 저장하기 때문에 변수로 인해 메모리의 일부만 차지하는 xrange()에 비해 메모리를 많이 차지합니다. range()는 범위 객체를 반환하는 반면 xrange()는 생성기 객체를 반환합니다.

범위(1, 7, 2) 함수는 출력 [1, 3, 5]를 반환하고 입력 xrange(1, 7, 2)는 출력 [1, 3, 5]를 생성합니다. 이것이 패턴에서 유사하다고 가정할 수 있는 방법입니다.

결론

range()와 xrange()는 위에서 논의한 것처럼 서로 다른 특성을 가지고 있습니다. 이 튜토리얼에서 언급한 모든 비교는 예제와 함께 독자가 요구 사항에 따라 선호하는 방법을 더 잘 선택하는 데 도움이 될 것입니다.