logo

Pythona | Utwórz listę liczb z podanego zakresu

Biorąc pod uwagę dwie liczby r1 I r2 (który definiuje zakres), napisz program w Pythonie, który utworzy listę z podanym zakresem (włącznie).

Przykłady:



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

Omówmy kilka podejść do tego Tworzenie listy liczb z zadanym zakresem w Pyton .

Naiwne podejście z wykorzystaniem pętli

Naiwna metoda tworzenia lista w danym zakresie polega najpierw na utworzeniu pustej listy i dołączeniu następnika każdej liczby całkowitej w każdej iteracji for pętla .

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))>

>

>

Wyjście:

[-1, 0, 1]>

Korzystanie ze rozumienia list

Możemy również skorzystać zrozumienie listy w celu. Po prostu wykonaj iterację „elementu” w pętli for z r1 Do r2 i zwróć wszystkie „przedmioty” jako listę. Będzie to prosty kod jednowierszowy.

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))>

>

>

Wyjście:

[-1, 0, 1]>

Używanie zakresu Pythona()

Python jest wyposażony w bezpośrednią funkcję range(), która tworzy sekwencję liczb od wartości początkowej do końcowej i wypisuje każdy element w sekwencji. Używamy zakres() z r1 I r2 a następnie przekonwertuj sekwencję na listę.

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))>

>

>

abstrakcja w Javie

Wyjście:

[-1, 0, 1]>

Korzystanie z itertools:

Możesz także użyć funkcji zakresu w połączeniu z funkcją łańcucha modułu itertools, aby utworzyć listę liczb z danego zakresu. Można to zrobić w następujący sposób:

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>

>

>

Wyjście

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

Spowoduje to utworzenie listy liczb od r1 do r2 włącznie poprzez połączenie elementów zakresu za pomocą funkcji łańcucha z modułu itertools.

Korzystanie z numpy.arange()

Pyton numpy.arange() zwraca listę z równomiernie rozmieszczonymi elementami zgodnie z interwałem. Tutaj ustawiamy interwał na 1, zgodnie z naszą potrzebą uzyskania pożądanego wyniku.

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))>

>

>

Wyjście:

[-1, 0, 1]>

Użycie numpy do utworzenia listy liczb o podanym zakresie

Tutaj tworzymy listę liczb z zadanego zakresu z określonym przyrostem.

Python3




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>))>

>

>

Wyjście:

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

Korzystanie z rekurencji

Innym podejściem do tworzenia listy liczb w danym zakresie jest użycie rekurencji. Obejmuje to zdefiniowanie funkcji rekurencyjnej, która pobiera bieżący zakres i listę, która ma zostać zwrócona, a następnie dodanie bieżącego zakresu do listy i ponowne wywołanie funkcji z następnym zakresem, aż do osiągnięcia końca zakresu.

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>

„co” to 10 z 100

>

>

Wyjście

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

Podejście to ma złożoność czasową O(n) i przestrzeń pomocniczą O(n), gdzie n jest liczbą elementów na liście.

Podejście 5: Używanie mapy() i funkcji lambda

W tym podejściu używamy map() i funkcji lambda do wygenerowania listy liczb w podanym zakresie. map() stosuje funkcję lambda do każdego elementu sekwencji i zwraca obiekt mapy. Konwertujemy obiekt mapy na listę i zwracamy go.

Algorytm

Użyj map() i funkcji lambda, aby wygenerować listę liczb w podanym zakresie.
Przekonwertuj obiekt mapy na listę i zwróć go.

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]>

>

>

Wyjście

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

Złożoność czasowa: O(r2-r1) gdzie r1 i r2 to dany zakres.
Złożoność przestrzeni: O(r2-r1) gdzie r1 i r2 to dany zakres.