logo

Python | Maak een lijst met nummers met een bepaald bereik

Gegeven twee cijfers r1 En r2 (dat het bereik definieert), schrijf een Python-programma om een ​​lijst te maken met het gegeven bereik (inclusief).

Voorbeelden:



 Input : r1 = -1, r2 = 1 Output : [-1, 0, 1] Input : r1 = 5, r2 = 9 Output : [5, 6, 7, 8, 9]>

Laten we een paar benaderingen bespreken Een lijst met getallen maken met een bepaald bereik in Python .

Naïeve aanpak met behulp van een lus

Een naïeve methode om een lijst binnen een bepaald bereik is om eerst een lege lijst te maken en de opvolger van elk geheel getal toe te voegen in elke iteratie van for lus .

Python3








# Python3 Program to Create list> # with integers within given range> def> createList(r1, r2):> ># Testing if range r1 and r2> ># are equal> >if> (r1>=>=> r2):> >return> r1> >else>:> ># Create empty list> >res>=> []> ># loop to append successors to> ># list until r2 is reached.> >while>(r1 +1 ): res.append(r1) r1 += 1 return res # Driver Code r1, r2 = -1, 1 print(createList(r1, r2))>

>

>

Uitgang:

[-1, 0, 1]>

Lijstbegrip gebruiken

Wij kunnen ook gebruiken lijst begrip Voor het doel. Herhaal gewoon ‘item’ in een for-lus van r1 naar r2 en retourneer alle ‘items’ als lijst. Dit zal een eenvoudige one-linercode zijn.

Python3




# Python3 Program to Create list> # with integers within given range> def> createList(r1, r2):> >return> [item>for> item>in> range>(r1, r2>+>1>)]> > # Driver Code> r1, r2>=> ->1>,>1> print>(createList(r1, r2))>

>

>

Uitgang:

[-1, 0, 1]>

Python-bereik() gebruiken

Python wordt geleverd met een directe functie range() die een reeks getallen creëert van start- tot stopwaarden en elk item in de reeks afdrukt. We gebruiken bereik() met r1 En r2 en converteer de reeks vervolgens naar een lijst.

Python3




# Python3 Program to Create list> # with integers within given range> def> createList(r1, r2):> >return> list>(>range>(r1, r2>+>1>))> > # Driver Code> r1, r2>=> ->1>,>1> print>(createList(r1, r2))>

>

>

vetgedrukte tekst css

Uitgang:

[-1, 0, 1]>

Itertools gebruiken:

U kunt de bereikfunctie ook gebruiken in combinatie met de ketenfunctie van de itertools-module om een ​​lijst met getallen met een bepaald bereik te maken. Dit kan als volgt worden gedaan:

Python3




# Python3 Program to Create list> # with integers within given range> import> itertools> r1>=>->5> r2>=>5> #using the chain function from the itertools module> numbers>=> list>(itertools.chain(>range>(r1, r2>+>1>)))> print>(numbers)> #This code is contributed by Edula Vinay Kumar Reddy>

>

>

Uitvoer

[-5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5]>

Hierdoor wordt een lijst met getallen van r1 tot en met r2 gemaakt door de elementen in het bereik aan elkaar te koppelen met behulp van de ketenfunctie van de itertools-module.

Numpy.arange() gebruiken

Python numpy.arange() retourneert een lijst met gelijkmatig verdeelde elementen volgens het interval. Hier stellen we het interval in op 1, afhankelijk van onze behoefte om de gewenste uitvoer te verkrijgen.

Python3




# Python3 Program to Create list> # with integers within given range> import> numpy as np> def> createList(r1, r2):> >return> np.arange(r1, r2>+>1>,>1>)> > # Driver Code> r1, r2>=> ->1>,>1> print>(createList(r1, r2))>

>

>

Uitgang:

[-1, 0, 1]>

Numpy gebruiken om een ​​lijst met getallen met een bepaald bereik te maken

Hier maken we een lijst met getallen uit een bepaald bereik met de gedefinieerde toename.

Python3


alfabet van cijfers



import> numpy as np> def> fun(start, end, step):> >num>=> np.linspace(start, end,(end>->start)> >*>int>(>1>/>step)>+>1>).tolist()> >return> [>round>(i,>2>)>for> i>in> num]> > print>(fun(>1>,>5>,>0.5>))>

>

>

Uitgang:

[1.0, 1.5, 2.0, 2.5, 3.0, 3.5, 4.0, 4.5, 5.0]>

Recursie gebruiken

Een andere benadering om een ​​lijst met getallen binnen een bepaald bereik te maken, is het gebruik van recursie. Dit omvat het definiëren van een recursieve functie die het huidige bereik en de lijst bevat die moet worden geretourneerd, en vervolgens het huidige bereik aan de lijst toevoegen en de functie opnieuw aanroepen met het volgende bereik totdat het einde van het bereik is bereikt.

Python3




def> create_list(r1, r2, lst):> ># Base case: if r1 is equal to r2, return the list> >if> r1>=>=> r2>+>1>:> >return> lst> ># Otherwise, append r1 to the list and call the function again with r1 + 1> >else>:> >lst.append(r1)> >return> create_list(r1>+> 1>, r2, lst)> # Test the function> print>(create_list(>5>,>9>, []))># [5, 6, 7, 8, 9]> print>(create_list(>->1>,>1>, []))># [-1, 0, 1]> #This code is contributed by Edula Vinay Kumar Reddy>

>

>

Uitvoer

[5, 6, 7, 8, 9] [-1, 0, 1]>

Deze benadering heeft een tijdscomplexiteit van O(n) en een hulpruimte van O(n), waarbij n het aantal elementen in de lijst is.

Benadering 5: gebruik van map() en lambda-functie

Bij deze aanpak gebruiken we map() en een lambda-functie om een ​​lijst met getallen binnen het opgegeven bereik te genereren. map() past de lambda-functie toe op elk element in de reeks en retourneert een kaartobject. We converteren het kaartobject naar een lijst en retourneren het.

Algoritme

Gebruik map() en een lambda-functie om een ​​lijst met getallen binnen het opgegeven bereik te genereren.
Converteer het kaartobject naar een lijst en retourneer het.

Python3




def> create_list(r1, r2):> >return> list>(>map>(>lambda> x: x,>range>(r1, r2>+>1>)))> # Test the function> print>(create_list(>5>,>9>))># [5, 6, 7, 8, 9]> print>(create_list(>->1>,>1>))># [-1, 0, 1]>

>

>

Uitvoer

[5, 6, 7, 8, 9] [-1, 0, 1]>

Tijdcomplexiteit: O(r2-r1) waarbij r1 en r2 het gegeven bereik zijn.
Ruimtecomplexiteit: O(r2-r1) waarbij r1 en r2 het gegeven bereik zijn.