Python | Create list of numbers with given range

Given two numbers r1 and r2 (which defines the range), write a Python program to create a list with the given range (inclusive).

Examples:

Input : r1 = -1, r2 = 1
Output : [-1, 0, 1]

Input : r1 = 5, r2 = 9
Output : [5, 6, 7, 8, 9]

Let’s discuss a few approaches to do this task.

Approach #1 : Naive Appraoch

A naive method to create list within a given range is to first create an empty list and append successor of each integer in every iteration of for loop.

filter_none

edit
close

play_arrow

link
brightness_4
code

# 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 < r2+1 ):
              
            res.append(r1)
            r1 += 1
        return res
      
# Driver Code
r1, r2 = -1, 1
print(createList(r1, r2))

chevron_right


Output:

[-1, 0, 1]

 
Approach #2 : List comprehension

We can also use list comprehension for the purpose. Just iterate ‘item’ in a for loop from r1 to r2 and return all ‘item’ as list. This will be a simple one liner code.

filter_none

edit
close

play_arrow

link
brightness_4
code

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

chevron_right


Output:

[-1, 0, 1]

 
Approach #3 : using Python range()

Python comes with a direct function range() which creates a sequence of numbers from start to stop values and print each item in the sequence. We use range() with r1 and r2 and then convert the sequence into list.

filter_none

edit
close

play_arrow

link
brightness_4
code

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

chevron_right


Output:

[-1, 0, 1]

 
Approach #4 : Using numpy.arange()

Python numpy.arange() returns a list with evenly spaced elements as per the interval. Here we set the interval as 1 according to our need to get the desired output.

filter_none

edit
close

play_arrow

link
brightness_4
code

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

chevron_right


Output:

[-1  0  1]


My Personal Notes arrow_drop_up


If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.