Hva er Python Range?
Python range () er en innebygd funksjon tilgjengelig med Python fra Python (3.x), og den gir en sekvens av tall basert på start- og stoppindeksen gitt. Hvis startindeksen ikke er gitt, betraktes indeksen som 0, og den vil øke verdien med 1 til stoppindeksen.
For eksempel vil rekkevidde (5) gi deg verdier 0,1,2,3,4. Python-området () er en veldig nyttig kommando og brukes mest når du må iterere ved hjelp av for loop.
I denne opplæringen lærer du:
- Hva er Python Range?
- Syntaks
- Python-rekkevidde () Funksjon og historie
- Bruke rekkevidde ()
- Bruke start og stopp innen rekkevidde ()
- Ved hjelp av start, stopp og trinn
- Øke verdiene i området ved hjelp av et positivt trinn.
- Omvendt område: Reduksjon av verdiene ved hjelp av negativt trinn.
- Bruke flytende tall i Python-området ()
- Bruke for-loop med Python-rekkevidde ()
- Bruker Python-serien () som en liste
- Bruke tegn i pythonområdet ()
- Hvordan få tilgang til rekkeviddeelementer
- Eksempel: Få like tall ved hjelp av rekkevidde ()
- Slå sammen to-rekke () utganger
- Bruke rekkevidde () Med NumPy
Syntaks
range(start, stop, step)
Parametere
- start: (valgfritt) Startindeksen er et helt tall, og hvis ikke gitt, er standardverdien 0.
- stopp: Stoppindeksen bestemmer verdien som rekkeviddefunksjonen skal stoppe med. Det er en obligatorisk inngang til rekkevidde-funksjon. Den siste verdien vil alltid være 1 mindre enn stoppverdien.
- trinn: (valgfritt). Trinnverdien er tallet som neste nummer i området må økes med, som standard er det 1.
Returverdi:
Returverdien er en sekvens av tall fra den gitte start-til-stopp-indeksen.
Python-rekkevidde () Funksjon og historie
Python range () har blitt introdusert fra python versjon 3, før det var xrange () funksjonen.
Både rekkevidde og xrange () brukes til å produsere en sekvens av tall.
Følgende er forskjellen mellom rekkevidde og xrange ():
område() | xrange () |
Området () gir tallrekkefølgen og returnerer en liste med tall. | Funksjonen xrange () gir et generatorobjekt som må sløyfes i en for-loop for å få verdiene. |
Området () returnerer en liste. | xrange () returnerer et generatorobjekt. |
Range () -metoden bruker mer minne ettersom den returnerte listen må lagres i forhold til xrange (). | Når xrange () returnerer et generatorobjekt, gir det ikke verdier umiddelbart og må brukes inne i for-loop for å få verdiene. |
Bruk av minne er mer, derfor blir kodeutførelsen treg når du arbeider med et stort datasett. | Kodeutførelsen går raskere ved hjelp av xrange (). |
Bruke rekkevidde ()
Dette eksemplet viser hvordan du skriver ut verdiene fra 0-9 ved hjelp av område ().
Verdien som brukes i området er 10, så utgangen er 0 1 2 3 4 5 6 7 8 9
Siden starten ikke gis, regnes starten som 0 og den siste verdien blir gitt til 9. Den siste verdien er alltid 1 mindre enn den gitte verdien, dvs. stopp-1.
for i in range(10):print(i, end =" ")
Produksjon:
0 1 2 3 4 5 6 7 8 9
Bruke start og stopp innen rekkevidde ()
I koden er startverdien 3, og stoppverdien er 10. Her er startindeksen 3, så tallsekvensen starter fra 3 til stoppverdien. Den siste verdien i sekvensen vil være 1 mindre enn stoppverdien 10-1 = 9.
for i in range(3, 10):print(i, end =" ")
Produksjon:
3 4 5 6 7 8 9
Ved hjelp av start, stopp og trinn
Startverdien er 3, så tallsekvensen starter ved 3. Stoppverdien er 10, så tallsekvensen stopper ved (10-1), dvs. 9. Trinnet er 2, så hver verdi i sekvensen vil økes med 2. Hvis trinnverdien ikke er gitt, er verdien for trinn standard 1.
for i in range(3, 10, 2):print(i, end =" ")
Produksjon:
3 5 7 9
Så langt har vi sett hvordan rekkevidde () -funksjonen gir den økte verdien for den angitte stoppverdien. La oss nå prøve et eksempel for å få den reduserte verdien i det gitte området.
Øke verdiene i området ved hjelp av et positivt trinn.
Parametertrinnet i område () kan brukes til å øke / redusere verdiene. Som standard er det en positiv verdi 1. Så det vil alltid gi økte verdier.
Trinnverdien må være positiv i tilfelle du vil ha økte verdier som utgang.
for i in range(1, 30, 5):print(i, end =" ")
Produksjon:
1 6 11 16 21 26
Omvendt område: Reduksjon av verdiene ved hjelp av negativt trinn.
Parametertrinnet med negativ verdi i området () kan brukes til å få reduserte verdier. I eksemplet nedenfor er trinnverdien negativ, så utdataene blir redusert fra den angitte områdeverdien.
for i in range(15, 5, -1):print(i, end =" ")
Produksjon:
15 14 13 12 11 10 9 8 7 6
Startverdien er 15, stoppverdien er 5 og trinnverdien er negativt tall, dvs. -1. Med ovennevnte innganger vil funksjonen () redusere verdien fra 15 og utover til den når stoppverdien, men her er forskjellen den siste verdien vil være stopp + 1.
Bruke flytende tall i Python-området ()
La oss nå jobbe med området () ved hjelp av flytende tall.
Eksempel:
for i in range(10.5):print(i, end =" ")
I eksemplet ovenfor har vi brukt stoppverdi som 10,5.
Utgangen er:
Traceback (most recent call last):File "python_range.py", line 1, infor i in range(10.5):TypeError: 'float' object cannot be interpreted as an integer
Python gir en feil da rekkevidden () ikke støtter flytende tall for start, stopp og trinn.
Bruke for-loop med Python-rekkevidde ()
I dette eksemplet vil vi bruke en rekke tall, og la oss se hvordan vi bruker iterere matrisen i for-loop ved hjelp av rekkevidde ()
Eksempel:
arr_list = ['Mysql', 'Mongodb', 'PostgreSQL', 'Firebase']for i in range(len(arr_list)):print(arr_list[i], end =" ")
Produksjon:
MysqlMongodb PostgreSQL Firebase
I eksemplet ovenfor har vi brukt len (arr_list) som stoppverdi. For-sløyfen vil gjenta til stoppverdien, dvs. lengden på matrisen, og den vil være 4, ettersom vi har fire elementer i arr_listen. Startverdien vil være 0 og trinn vil være 1. Så verdiene starter fra 0 og stopper ved 3 dvs. lengden på matrisen -1 som betyr 4 -1 = 3.
Bruker Python-serien () som en liste
I dette eksemplet vil du se hvordan du bruker utdataene fra området som en liste.
Eksempel:
print(list(range(10)))
Produksjon:
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
Du kan se at utgangen er et listeformat. Det var ikke nødvendig å sløyfe rekkevidde () og ved å bruke list () -metoden kunne vi direkte konvertere utdata fra område til listeformat.
Bruke tegn i pythonområdet ()
Så langt har vi brukt heltall i python-området (). Vi har også sett at flytende punktnumre ikke støttes i pythonområdet. La oss prøve å se resultatet om hva som skjer når vi bruker tegn.
Eksempel:
for c in range ('z'):print(c, end =" ")
Produksjon:
Traceback (most recent call last):File "python_range.py", line 1, infor c in range ('z'):TypeError: 'str' object cannot be interpreted as an integer
Det kaster en feil som sier at en streng ikke kan tolkes som et heltall.
For å få listen over alfabeter kan du tilpasse koden og få ønsket utdata som vist nedenfor:
Eksempel:
def get_alphabets(startletter, stopletter, step):for c in range(ord(startletter.lower()), ord(stopletter.lower()), step):yield chr(c)print(list(get_alphabets("a", "h", 1)))
Produksjon:
['a', 'b', 'c', 'd', 'e', 'f', 'g']
Hvordan få tilgang til rekkeviddeelementer
Du kan bruke en for-loop for å hente verdiene fra området eller bruke indeksen for å få tilgang til elementene fra området ().
Bruker for-loop
Eksempel:
for i in range(6):print(i)
Produksjon:
012345
Bruker indeks
Indeksen brukes med rekkevidde for å få verdien tilgjengelig på den posisjonen. Hvis rekkevidden er 5, for å få startverdien, kan du bruke område (5) [0] og neste verdiområde (5) [1] og så videre.
Eksempel:
startvalue = range(5)[0]print("The first element in range is = ", startvalue)secondvalue = range(5)[1]print("The second element in range is = ", secondvalue)lastvalue = range(5)[-1]print("The first element in range is = ", lastvalue)
Produksjon:
startvalue = range(5)[0]print("The first element in range is = ", startvalue)secondvalue = range(5)[1]print("The second element in range is = ", secondvalue)lastvalue = range(5)[-1]print("The first element in range is = ", lastvalue)
Bruke liste ()
Denne metoden vil skrive ut alle elementene fra området (). Ved å bruke liste () vil den returnere elementene fra rekkevidde () i listeformat.
Eksempel:
print(list(range(10)))
Produksjon:
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
Det gir listeutdata for det gitte området.
Eksempel: Få like tall ved hjelp av rekkevidde ()
Ved å bruke rekkevidde () får du listen over partallnumre i området gitt som inndata. Parametrene for område () er, start er 2, stopp er 20, og trinn er 2, så verdiene økes med 2 og vil gi like tall til stopp-2.
Eksempel:
for i in range(2, 20, 2):print(i, end =" ")
Produksjon:
2 4 6 8 10 12 14 16 18
Slå sammen to-rekke () utganger
I dette eksemplet sammenkobles 2 range () -funksjoner ved hjelp av itertools module chain () -funksjon.
Eksempel:
from itertools import chainprint("Merging two range into one")frange =chain(range(10), range(10, 20, 1))for i in frange:print(i, end=" ")
Produksjon:
Merging two range into one0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
Bruke rekkevidde () Med NumPy
NumPy-modulen har arange () -funksjon som fungerer og gir lignende utdata som rekkevidde (). Arrangeringen () har de samme parametrene som rekkevidde ().
Syntaks:
arange(start, stop, step)
Følg trinnene nedenfor for å jobbe med NumPy.
Trinn 1 : Importer NumPy-modulen
import numpy
Incase mens utførelse, det gir en feil som sier numpy module ikke funnet, du må installere modulen som vist i trinn 2.
Trinn 2 : Installer NumPy
pip install numpy
Trinn 3 : Arbeidseksempel på arange () ved hjelp av NumPy
import numpy as npfor i in np.arange(10):print(i, end =" ")
Produksjon:
0 1 2 3 4 5 6 7 8 9
Flytende punktum ved hjelp av NumPy arange ()
Det er ikke mulig å få flytpunktsekvensen ved hjelp av rekkevidde (), men det er mulig å bruke NumPy-rekkevidde ().
Eksempel:
Området vi ønsker er fra 0,5 til 1,5. Verdien økes med 0,2.
import numpy as npfor i in np.arange(0.5, 1.5, 0.2):print(i, end =" ")
Produksjon:
0.5 0.7 0.8999999999999999 1.0999999999999999 1.2999999999999998
Resultatet vi får er litt rart, noen av flottallene vises med 16 desimaler. Dette skjer på grunn av kompleksiteten ved å lagre desimale flytende tall i binært format. Du kan også runde verdiene om nødvendig og begrense dem til desimalene du trenger.
Sammendrag:
- Python range () er en innebygd funksjon tilgjengelig med Python fra Python (3.x), og den gir en sekvens av tall basert på start- og stoppindeksen gitt. Hvis startindeksen ikke er gitt, betraktes indeksen som 0, og den vil øke verdien til stoppindeksen.
- Python-serien () har blitt introdusert fra python versjon 3, før det var xrange () funksjonen.
- Området () gir tallrekkefølgen og returnerer en liste med tall. Funksjonen xrange () gir et generatorobjekt som må sløyfes i en for-loop for å få verdiene.
- Parametertrinnet i område () kan brukes til å øke / redusere verdiene. Som standard er det en positiv verdi 1. Så det vil alltid gi økte verdier.
- Python gir en feil for flytende tall, da funksjonen for rekkevidde () støtter bare heltallverdier.
- Verdiene fra område () kan nås ved hjelp av for-loop, ved hjelp av indeks og liste ()
- NumPy-modulen har arange () -funksjon som fungerer og gir lignende utdata som rekkevidde (). Arange () tar i seg samme parametere som område ().
- Det er mulig å få flytpunktsekvensen NumPy arange () som ikke støttes ved hjelp av rekkevidde ().