Mi az a Python Range?
A Python range () egy beépített függvény, amely a Python-nal elérhető a Python-tól (3.x), és a megadott kezdési és leállítási index alapján számsort ad. Abban az esetben, ha a kezdőindex nincs megadva, az index 0-nak számít, és 1-vel növeli az értéket a stop-indexig.
Például az (5) tartomány 0,1,2,3,4 értékeket ad ki. A Python tartomány () nagyon hasznos parancs, és többnyire akkor használatos, amikor a ciklus használatával kell iterálni.
Ebben az oktatóanyagban megtudhatja:
- Mi az a Python Range?
- Szintaxis
- Python tartomány () Funkció és előzmények
- A tartomány () használata
- A start és a stop használata a tartományban ()
- A start, stop és step használatával
- A tartomány értékeinek növelése pozitív lépés segítségével.
- Fordított tartomány: Az értékek csökkentése negatív lépés segítségével.
- Lebegő számok használata a Python tartományban ()
- A for-loop használata Python tartományval ()
- A Python range () használata listaként
- Karakterek használata a python tartományban ()
- Hogyan lehet elérni a tartomány elemeit
- Példa: Páros számok beszerzése a range () használatával
- Két tartományú () kimenetek egyesítése
- A tartomány () használata a NumPy-vel
Szintaxis
range(start, stop, step)
Paraméterek
- start: (opcionális) A start index egész szám, és ha nincs megadva, akkor az alapértelmezett érték 0.
- stop: A stop index határozza meg azt az értéket, amelynél a tartományfüggvénynek le kell állnia. A tartományfüggvény kötelező bevitele. Az utolsó érték mindig 1-gyel lesz kisebb, mint a leállási érték.
- lépés: (nem kötelező). A lépés értéke az a szám, amellyel a következő szám tartományt növelni kell, alapértelmezés szerint ez 1.
Visszatérési érték:
A visszatérő érték az adott kezdő és leállítási index közötti számsorozat.
Python tartomány () Funkció és előzmények
A Python tartományt () a Python 3-as verziójától vezették be, azelőtt az xrange () volt a függvény.
A tartomány és az xrange () egyaránt felhasználható számok sorozatának előállítására.
A következő a különbség a tartomány és az xrange () között:
hatótávolság() | xrange () |
A tartomány () megadja a számok sorrendjét, és visszaadja a számok listáját. | Az xrange () függvény egy olyan generátorobjektumot ad, amelyet egy for-ciklusba kell hurokolni az értékek megszerzéséhez. |
A tartomány () listát ad vissza. | Az xrange () generátorobjektumot ad vissza. |
A range () metódus több memóriát használ, mivel a visszaküldött listát az xrange () -hez képest tárolni kell. | Mivel az xrange () egy generátor objektumot ad vissza, nem ad azonnal értékeket, és a for-loop belsejében kell felhasználni az értékek megszerzéséhez. |
A memória használata sokkal inkább a kód végrehajtása lassú, amikor hatalmas adatkészleten dolgozunk. | A kód végrehajtása gyorsabb az xrange () használatával. |
A tartomány () használata
Ez a példa bemutatja, hogyan lehet 0 és 9 közötti értékeket kinyomtatni a tartomány () segítségével.
A tartományban használt érték 10, tehát a kimenet 0 1 2 3 4 5 6 7 8 9
Mivel a rajt nincs megadva, a kezdet 0-nak számít, az utolsó érték pedig 9-ig kerül megadásra. Az utolsó érték mindig 1-gyel kisebb, mint az adott érték, azaz stop-1.
for i in range(10):print(i, end =" ")
Kimenet:
0 1 2 3 4 5 6 7 8 9
A start és a stop használata a tartományban ()
A kódban a kezdőérték 3, a stop értéke 10. Itt a kezdőindex 3, tehát a számok sorrendje 3-tól a stop értékig kezdődik. A sorozat utolsó értéke 1-gyel lesz kevesebb, mint a 10-1 = 9 stop érték.
for i in range(3, 10):print(i, end =" ")
Kimenet:
3 4 5 6 7 8 9
A start, stop és step használatával
A kiindulási érték 3, tehát a számsorozat 3-tól kezdődik. A leállási érték 10, tehát a számok sorrendje (10-1), azaz 9-nél áll meg. A lépés 2, tehát a sorozat minden értéke Ha a lépésérték nincs megadva, akkor a lépés értéke alapértelmezés szerint 1.
for i in range(3, 10, 2):print(i, end =" ")
Kimenet:
3 5 7 9
Eddig láttuk, hogy a range () függvény hogyan adja meg az adott stop érték növelt értékét. Próbálkozzunk most egy példával, hogy a csökkentett értéket megkapjuk a megadott tartományban.
A tartomány értékeinek növelése pozitív lépés segítségével.
A () tartományban lévő paraméterlépés az értékek növelésére / csökkentésére használható. Alapértelmezés szerint ez egy pozitív érték 1. Tehát mindig növekményes értékeket ad.
A lépésértéknek pozitívnak kell lennie, ha növekményes értékeket szeretne ouputként használni.
for i in range(1, 30, 5):print(i, end =" ")
Kimenet:
1 6 11 16 21 26
Fordított tartomány: Az értékek csökkentése negatív lépés segítségével.
A () tartomány negatív értékű paraméterlépése csökkentett értékek lekérésére használható. Az alábbi példában a lépésérték negatív, így a kimenetet csökkenteni kell a megadott tartományértéktől.
for i in range(15, 5, -1):print(i, end =" ")
Kimenet:
15 14 13 12 11 10 9 8 7 6
A kezdőérték 15, a leállítási érték 5, a lépésérték pedig negatív szám, azaz -1. A fenti bemenetekkel a range () függvény csökkenti az értéket 15-től kezdve, amíg el nem éri a leállítási értéket, de itt a különbség az utolsó érték stop + 1 lesz.
Lebegő számok használata a Python tartományban ()
Dolgozzunk most a tartományon () lebegőpontos számok felhasználásával.
Példa:
for i in range(10.5):print(i, end =" ")
A fenti példában a stop értéket 10,5-ként használtuk.
A kimenet:
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
A Python hibát ad, mivel a range () függvény nem támogatja a lebegőpontos számokat az indításhoz, a leállításhoz és a lépéshez.
A for-loop használata Python tartományval ()
Ebben a példában számtömböt fogunk használni, és nézzük meg, hogyan kell használni a tömb iterációját a for-loop belsejében a range () használatával
Példa:
arr_list = ['Mysql', 'Mongodb', 'PostgreSQL', 'Firebase']for i in range(len(arr_list)):print(arr_list[i], end =" ")
Kimenet:
MysqlMongodb PostgreSQL Firebase
A fenti példában a len (arr_list) kifejezést használtuk leállítási értékként. A for ciklus a stop értékig, azaz a tömb hosszáig iterál, és ez 4 lesz, mivel négy elemünk van az arr_list-ben. A kiindulási érték 0, a lépés pedig 1 lesz. Tehát az értékek 0-tól kezdődnek, és 3-nál állnak meg, azaz a -1 tömb hossza, azaz 4 -1 = 3.
A Python range () használata listaként
Ebben a példában megnézzük, hogyan lehet felhasználni a tartomány kimenetét listaként.
Példa:
print(list(range(10)))
Kimenet:
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
Láthatja, hogy a kimenet lista formátumú. Nem volt szükséges a tartomány () hurokba hurcolása, és a list () metódus segítségével közvetlenül konvertálhatjuk a kimenetet tartományról listára.
Karakterek használata a python tartományban ()
Eddig egész számokat használtunk a python tartományban (). Azt is láttuk, hogy a lebegőpontos számok nem támogatottak a python tartományban. Próbáljuk meg megnézni, mi történik a karakterek használatakor.
Példa:
for c in range ('z'):print(c, end =" ")
Kimenet:
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
Hibát dob, mondván, hogy egy karakterlánc nem értelmezhető egész számként.
Az ábécék listájának megszerzéséhez testreszabhatja a kódot, és megszerezheti a kívánt kimenetet az alábbiak szerint:
Példa:
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)))
Kimenet:
['a', 'b', 'c', 'd', 'e', 'f', 'g']
Hogyan lehet elérni a tartomány elemeit
Használhat egy for-ciklust az értékek lekéréséhez a tartományból, vagy az index segítségével elérheti a tartomány () elemeit.
For-loop használata
Példa:
for i in range(6):print(i)
Kimenet:
012345
Az index használata
Az indexet a tartományhoz használják, hogy megszerezzék az adott pozícióban elérhető értéket. Ha a tartomány értéke 5, a kezdőérték megszerzéséhez használhatja az (5) [0] tartományt és a következő értéktartományt (5) [1] stb.
Példa:
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)
Kimenet:
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)
A lista () használata
Ez a módszer kinyomtatja a tartomány () összes elemét. A list () használatával a tartomány () elemeit lista formátumban adja vissza.
Példa:
print(list(range(10)))
Kimenet:
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
Megadja a megadott tartomány listakimenetét.
Példa: Páros számok beszerzése a range () használatával
A range () használatával megkapja a páros számok listáját a bemenetként megadott tartományban. A () tartomány paraméterei: start 2, stop 20 és step 2, tehát az értékek 2-vel növekednek, és páros számokat adnak a stop-2-ig.
Példa:
for i in range(2, 20, 2):print(i, end =" ")
Kimenet:
2 4 6 8 10 12 14 16 18
Két tartományú () kimenetek egyesítése
Ebben a példában összefűzünk 2 tartomány () függvényt az itertools modullánc () függvény segítségével.
Példa:
from itertools import chainprint("Merging two range into one")frange =chain(range(10), range(10, 20, 1))for i in frange:print(i, end=" ")
Kimenet:
Merging two range into one0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
A tartomány () használata a NumPy-vel
A NumPy modul arange () funkcióval rendelkezik, amely működik, és hasonló kimenetet ad, mint például a range (). A rendezés () ugyanazokat a paramétereket veszi fel, mint a tartomány ().
Szintaxis:
arange(start, stop, step)
A NumPy használatához kövesse az alábbi lépéseket.
1. lépés : Importálja a NumPy modult
import numpy
Futtatás közben beilleszt, hibaüzenetet mond, hogy a numpy modul nem található, telepítenie kell a modult a 2. lépésben leírtak szerint.
2. lépés : Telepítse a NumPy-t
pip install numpy
3. lépés : Működési példa az arange () használatára a NumPy használatával
import numpy as npfor i in np.arange(10):print(i, end =" ")
Kimenet:
0 1 2 3 4 5 6 7 8 9
Lebegőpontos számok a NumPy arange () használatával
A () tartomány használatával nem lehet lebegőpontos szekvenciát lekérni, de a NumPy arange () segítségével.
Példa:
A kívánt tartomány 0,5 és 1,5 között van. Az érték 0,2-gyel növekszik.
import numpy as npfor i in np.arange(0.5, 1.5, 0.2):print(i, end =" ")
Kimenet:
0.5 0.7 0.8999999999999999 1.0999999999999999 1.2999999999999998
A kapott kimenet kissé furcsa, az úszószámok egy részét 16 tizedesjeggyel tüntetjük fel. Ez a decimális lebegő számok bináris formátumban történő tárolásának bonyolultsága miatt történik. Szükség esetén kerekítheti is az értékeket, és korlátozhatja őket a szükséges tizedesjegyekre.
Összegzés:
- A Python range () egy beépített függvény, amely a Python-nal elérhető a Python-tól (3.x), és a megadott kezdési és leállítási index alapján számsort ad. Abban az esetben, ha a kezdőindex nincs megadva, az index 0-nak számít, és a stop indexig növeli az értéket.
- A Python tartományt () a Python 3-as verziójától vezették be, azelőtt az xrange () volt a függvény.
- A tartomány () megadja a számok sorrendjét, és visszaadja a számok listáját. Az xrange () függvény egy olyan generátorobjektumot ad, amelyet egy for-ciklusba kell hurokolni az értékek megszerzéséhez.
- A () tartományban lévő paraméterlépés az értékek növelésére / csökkentésére használható. Alapértelmezés szerint ez egy pozitív érték 1. Tehát mindig növekményes értékeket ad.
- A Python hibát ad a lebegőpontos számoknál, mivel a range () függvény csak egész értékeket támogat.
- A tartomány () értékei a for-loop használatával, az index és a lista () használatával érhetők el.
- A NumPy modul arange () funkcióval rendelkezik, amely működik, és hasonló kimenetet ad, mint például a range (). Az arange () ugyanazokat a paramétereket veszi fel, mint a range ().
- A tartomány () használatával meg lehet kapni a lebegőpontos szekvenciát (NumPy arange (), amelyet nem támogatunk.