Piton

Python xrange vs. gamă

Python xrange vs. gamă
Până la versiunea 2 Python.x, au existat un total de două metode de bază utilizate în acest limbaj pentru a genera lista de numere întregi într-un interval furnizat. Cele două metode sunt enumerate mai jos:

gamă ()
xrange ()

Mergând mai departe, cu cea mai recentă versiune de Python (3 în continuare), range () a fost retras, iar xrange () a fost apoi schimbat în range (). Acum, în Python 3, există o singură funcție pentru această metodă, i.e., gamă (). În Python 3, funcția range () este doar un alt mod de a implementa versiunea mai veche a xrange () a python 2.X. Aici, vom relata cele două.

Xrange ()

Xrange () este utilizat pentru a crea o secvență de numere precum funcția range ().

Sintaxă

Sintaxa utilizată pentru a defini xrange () este:

xrange (început, sfârșit, pas)

Funcția este utilizată pentru a defini gama de numere începând de la (este inclusă) până la sfârșit (nu este inclusă).

Parametrii

Următoarea listă a parametrilor necesari:

Start: Poziția inițială a secvenței numerice
Sfârșit: poziția finală a secvenței numerice
Pas: Distincția dintre două numere consecutive din serie.

Exemple

În exemplul următor, vom verifica modalitățile de definire a xrange.

Aici vom specifica doar poziția finală.

Deci, valoarea finală este setată ca 5 și apoi vom obține poziția finală tipărită, așa cum se arată mai jos:

Acum, vom vedea metoda intervalului de apelare, sintaxa la care se termină apelul va fi:

>>> x = xrange (sfârșit)

Apoi îl vom imprima.

Vom obține intervalul în ieșire, așa cum se arată mai sus.

Acum, vom defini atât punctele inițiale, cât și cele finale. Aici, punctul de plecare este 2, iar punctul final este 5. Apoi am imprimat pozițiile de început și de sfârșit, așa cum se arată mai jos:

După aceasta, vom crea o succesiune de numere din punctele noastre de început și de sfârșit, i.e., 2 la 5.

>>> y = xrange (start, end)

În cele din urmă, vom verifica metoda de definire a punctului de plecare, a pasului și a punctului final. Odată ce am definit toți cei trei parametri; le vom numi similar cu metoda prezentată mai jos:

Acum, pentru a apela xrange pentru acești trei parametri, vom folosi următoarea sintaxă:

>>> z = xrange (start, step, end)

Gamă ()

Range () este folosit pentru a crea o listă și este o funcție mai rapidă pentru mai multe iterații.

Sintaxă

Se utilizează următoarea sintaxă:

>>> gama (început, sfârșit, pas)

Exemple

Pentru primul caz, vom defini valoarea finală. Sintaxa utilizată pentru aceasta este:

>>> interval (sfârșit)

Deci, în exemplul dat mai jos, vom folosi 3 ca valoare finală a intervalului. Când îl imprimăm, returnează valorile, excluzând valoarea finală.

În exemplul următor, folosim exemplul descrierii punctului de început și de sfârșit. Valoarea va începe de la 1 și se va termina la 10 (prin excluderea acesteia). Punctul de plecare este inclus, dar punctul de final este omis. Sintaxa este similară cu cea dată mai jos:

>>> gama (inceput, sfarsit)

Deci, definim punctul de plecare și apoi punctul final, care este 1 și respectiv 10.

Acum, în exemplul următor, vom avea funcția de pas. Funcția care definește decalajul dintre oricare două puncte din secvență. Valoarea va începe de la 0 și se va termina la 10 (prin excluderea acesteia). Sintaxa utilizată este dată mai jos:

>>> gama (start, step, end)

Exemplul este dat mai jos, unde 2 este valoarea pasului.

Avantaje

gamă ()

Este mai rapid dacă iterațiile trebuie făcute de mai multe ori. range () are doar valorile obiectului întreg în timp real. În ceea ce privește memoria, nu se execută bine.

xrange ()

Trebuie să recreeze de fiecare dată obiectul întreg. xrange () nu este, deoarece nu acceptă felii și metode de listare. xrange () are aceeași cantitate de memorie. Deci, în ceea ce privește performanța, mai ales atunci când utilizatorii iterați într-o gamă mai mare, xrange () funcționează mult mai bine.

Asemănări între Python 2 și Python 3 range și xrange

Xrange-ul Python 2 are o reprezentare descriptivă sub forma șirului, care este foarte asemănătoare cu valoarea obiectului de gamă Python 3.

Valoarea xrange () în Python 2 este iterabilă, deci sună () în Python 3.

xrange () și range () au ambele valori de pas, final și punct de pornire. În ambele cazuri, pasul este un câmp opțional, la fel și valoarea de pornire.

Atât xrange de Python 2 cât și 3 suportă lungimea care poate fi indexată în ordine înainte sau inversă. Iată un exemplu de același lucru:

Diferențe între range () și xrange ()

Deoarece xrange () evaluează numai obiectul generator cu valorile necesare evaluării leneșe, este mai rapid să se implementeze în intervalul (). range () ajută la returnarea listei și are toate obiectele care pot fi folosite, în timp ce xrange () returnează obiectele asociate cu o listă și nu le poate fi aplicat astfel încât să o putem număra ca dezavantaj.

Variabila utilizată în funcția range () stochează valoarea intervalului și, prin urmare, are multă memorie în comparație cu xrange (), care ia doar o parte din memorie datorită variabilelor. range () returnează un obiect range, în timp ce, xrange () returnează un obiect generator.

Funcția intervalului (1, 7, 2) va returna ieșirea [1, 3, 5], iar intervalul de intrare (1, 7, 2) va produce ieșirea [1, 3, 5]. Așa putem presupune că sunt similare în model.

Concluzie

range () și xrange () au ambele caracteristici diferite, după cum sa discutat mai sus. Toate comparațiile menționate în acest tutorial, împreună cu exemplele, vor fi utile cititorilor pentru a alege mai bine metoda preferată pe baza cerințelor lor.

OpenTTD Tutorial
OpenTTD is one of the most popular business simulation games out there. In this game, you need to create a wonderful transportation business. However,...
SuperTuxKart for Linux
SuperTuxKart is a great title designed to bring you the Mario Kart experience free of charge on your Linux system. It is pretty challenging and fun to...
Battle for Wesnoth Tutorial
The Battle for Wesnoth is one of the most popular open source strategy games that you can play at this time. Not only has this game been in developmen...