Python xrange vs. range

Python Xrange Vs Range



Do wersji Pythona 2.x istniały w sumie dwie podstawowe metody używane w tym języku do generowania listy liczb całkowitych w podanym zakresie. Poniżej wymieniono dwie metody:

zasięg ()
xzakres ()







Idąc dalej, z najnowszą wersją Pythona (3 i dalej), range() został wycofany, a xrange() został następnie zmieniony na range(). Teraz w Pythonie 3 jest tylko jedna funkcja dla tej metody, tj. Zakres (). W Pythonie 3 funkcja range() jest po prostu kolejnym sposobem implementacji starszej wersji xrange() Pythona 2.x. Tutaj odniesiemy się do tych dwóch.



Xzakres ()

xrange() służy do tworzenia sekwencji liczb, takiej jak funkcja range().



Składnia

Składnia użyta do zdefiniowania xrange() to:





xrange(początek,kończyć się,krok)

Funkcja służy do zdefiniowania zakresu numerów od (jest uwzględniony) do końca (nie uwzględniony).

Parametry

Poniżej znajduje się lista wymaganych parametrów:



 Start: pozycja początkowa sekwencji numerów
 End: Końcowa pozycja sekwencji liczb
 Krok: rozróżnienie dwóch kolejnych liczb w serii.

Przykłady

W poniższym przykładzie sprawdzimy sposoby definiowania xrange.

Tutaj będziemy określać tylko pozycję końcową.

Tak więc wartość końcowa jest ustawiona na 5, a następnie otrzymujemy wydrukowaną pozycję końcową, jak pokazano poniżej:

Teraz zobaczymy metodę wywołania zakresu, składnia do wywołania end będzie wyglądać tak:

>>>x= xrange(kończyć się)

Potem go wydrukujemy.

Na wyjściu otrzymamy zakres, jak pokazano powyżej.

Teraz zdefiniujemy zarówno punkt początkowy, jak i końcowy. Tutaj punkt początkowy to 2, a punkt końcowy to 5. Następnie wydrukowaliśmy pozycje początkową i końcową, jak pokazano poniżej:

Następnie utworzymy sekwencję liczb z naszego punktu początkowego i końcowego, tj. 2 do 5.

>>>oraz= xrange(początek,kończyć się)

Na koniec sprawdzimy metodę definiowania punktu początkowego, kroku i punktu końcowego. Po zdefiniowaniu wszystkich trzech parametrów; będziemy je wywoływać podobnie do metody pokazanej poniżej:

Teraz, aby wywołać xrange dla tych trzech parametrów, użyjemy następującej składni:

>>>z= xrange(początek,krok,kończyć się)

Zasięg ()

Range() służy do tworzenia listy i jest szybszą funkcją dla wielu iteracji.

Składnia

Używana jest następująca składnia:

>>> zasięg(początek,kończyć się,krok)

Przykłady

W pierwszym przypadku określimy wartość końcową. Używana do tego składnia to:

>>> zasięg(kończyć się)

Tak więc w poniższym przykładzie użyjemy 3 jako wartości końcowej zakresu. Po wydrukowaniu zwraca wartości, z wyłączeniem wartości końcowej.

W kolejnym przykładzie posługujemy się przykładem opisu punktu początkowego i końcowego. Wartość zaczyna się od 1 i kończy na 10 (poprzez jej wykluczenie). Uwzględniono punkt początkowy, ale pominięto punkt końcowy. Składnia jest podobna do tej podanej poniżej:

>>> zasięg (początek,kończyć się)

Tak więc definiujemy punkt początkowy, a następnie punkt końcowy, który wynosi odpowiednio 1 i 10.

Teraz w kolejnym przykładzie będziemy mieli funkcję kroku. Funkcja definiująca przerwę między dowolnymi dwoma punktami w sekwencji. Wartość zaczyna się od 0 i kończy na 10 (poprzez jej wykluczenie). Zastosowana składnia jest podana poniżej:

>>> zasięg (początek,krok,kończyć się)

Przykład podano poniżej, gdzie 2 to wartość kroku.

Zalety

zasięg ()

Szybciej jest, jeśli iteracje mają być wykonywane wiele razy. range () ma tylko wartości obiektów liczb całkowitych w czasie rzeczywistym. Pod względem pamięci nie działa dobrze.

xzakres()

Musi za każdym razem odtwarzać obiekt całkowity. xrange() nie jest, ponieważ nie obsługuje wycinków i metod list. xrange() zajmuje taką samą ilość pamięci. Tak więc, jeśli chodzi o wydajność, zwłaszcza gdy użytkownicy iterują w większym zakresie, xrange() działa znacznie lepiej.

Podobieństwa między zakresem Python 2 i Python 3 oraz xrange

xrange w Pythonie 2 ma opisową reprezentację w postaci ciągu, który jest bardzo podobny do wartości obiektu range w Pythonie 3.

Wartość xrange() w Pythonie 2 jest iterowalna, podobnie jak rang() w Pythonie 3.

xrange() i range() mają wartości kroku, końca i punktu początkowego. W obu przypadkach step jest polem opcjonalnym, podobnie jak wartość początkowa.

Zarówno xrange w Pythonie 2, jak i 3 obsługują długość, która może być indeksowana w kolejności do przodu lub do tyłu. Oto przykład tego samego:

Różnice między range() i xrange()

Ponieważ xrange() ocenia tylko obiekt generatora z wartościami wymaganymi przez leniwą ocenę, szybsze jest zaimplementowanie przez range(). range() pomaga zwrócić listę i zawiera wszystkie obiekty, których można użyć, podczas gdy xrange() zwraca obiekty powiązane z listą i nie można ich do nich zastosować, więc możemy to uznać za wadę.

Zmienna używana w funkcji range() przechowuje wartość range, a tym samym zajmuje dużo pamięci w porównaniu z funkcją xrange(), która zajmuje tylko część pamięci ze względu na zmienne. range() zwraca obiekt zakresu, podczas gdy xrange() zwraca obiekt generatora.

Funkcja range (1, 7, 2) zwróci wynik [1, 3, 5], a wejście xrange (1, 7, 2) da wynik [1, 3, 5]. W ten sposób możemy założyć, że mają podobny wzór.

Wniosek

range() i xrange() mają różne cechy, jak omówiono powyżej. Wszystkie porównania wymienione w tym samouczku, wraz z przykładami, pomogą czytelnikom lepiej wybrać preferowaną metodę w oparciu o ich wymagania.