logo

Python | Створіть список чисел із заданим діапазоном

Дано два числа r1 і r2 (який визначає діапазон), напишіть програму на Python для створення списку з заданим діапазоном (включно).

приклади:



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

Давайте обговоримо кілька підходів до Створення списку чисел із заданим діапазоном Python .

Наївний підхід із використанням циклу

Наївний метод створення a список у заданому діапазоні — це спочатку створити порожній список і додати послідовник кожного цілого числа в кожній ітерації for петля .

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

>

>

Вихід:

[-1, 0, 1]>

Використання розуміння списку

Ми також можемо використовувати розуміння списку з метою. Просто повторіть «item» у циклі for r1 до r2 і повернути всі «item» як список. Це буде простий однорядковий код.

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

>

>

Вихід:

[-1, 0, 1]>

Використання Python range()

Python постачається з прямою функцією range(), яка створює послідовність чисел від початкових до кінцевих значень і друкує кожен елемент у послідовності. Ми використовуємо діапазон() з r1 і r2 а потім перетворити послідовність у список.

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

>

>

амріта рао актор

Вихід:

[-1, 0, 1]>

Використання itertools:

Ви також можете використовувати функцію діапазону в поєднанні з ланцюжковою функцією модуля itertools, щоб створити список чисел із заданим діапазоном. Це можна зробити наступним чином:

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>

>

>

Вихід

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

Це створить список чисел від r1 до r2 включно шляхом об’єднання елементів у діапазоні разом за допомогою функції chain з модуля itertools.

Використання numpy.arange()

Python numpy.arange() повертає список із рівномірно розташованими елементами відповідно до інтервалу. Тут ми встановлюємо інтервал як 1 відповідно до нашої потреби отримати бажаний результат.

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

>

>

Вихід:

[-1, 0, 1]>

Використання numpy для створення списку чисел із заданим діапазоном

Тут ми створюємо список чисел із заданого діапазону з визначеним кроком.

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

>

>

Вихід:

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

Використання рекурсії

Іншим підходом до створення списку чисел у заданому діапазоні є використання рекурсії. Це передбачає визначення рекурсивної функції, яка приймає поточний діапазон і список, який потрібно повернути, а потім додавання поточного діапазону до списку та повторний виклик функції з наступним діапазоном, доки не буде досягнуто кінця діапазону.

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>

>

>

Вихід

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

Цей підхід має часову складність O(n) і допоміжний простір O(n), де n – кількість елементів у списку.

Підхід 5: Використання map() і лямбда-функції

У цьому підході ми використовуємо map() і лямбда-функцію для створення списку чисел у заданому діапазоні. map() застосовує лямбда-функцію до кожного елемента в послідовності та повертає об’єкт карти. Ми перетворюємо об’єкт карти на список і повертаємо його.

Алгоритм

Використовуйте map() і лямбда-функцію, щоб створити список чисел у заданому діапазоні.
Перетворіть об’єкт карти на список і поверніть його.

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

>

>

Вихід

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

Часова складність: O(r2-r1), де r1 і r2 заданий діапазон.
Просторова складність: O(r2-r1), де r1 і r2 заданий діапазон.