Python Take list as an input from a user

By | January 19, 2022
Python Take list as an input from a user

Using the input() function in Python we can accept the input from the user. The input() function takes the user entered data as a string data type, and if we want that data into a different format, we have to convert it using some Python functions and methods.

In this tutorial, we will discuss how to input a list in Python. By the end of this tutorial, you will have a solid understanding of how can we can convert user input data to a list in Python.

How to get a list of numbers as input from a user?

Here are the steps to make a list as input in Python.

step1: Write the input function

The first step, write the input() function and pass the appropriate input message argument that will be printed when Python executes the input() function.

num_list = input("Enter a list of numbers seperated with space: ")

step 2: apply the split() method on the input function

The split()  is a string method that by default breaks a string into a list of words by spaces. We can use this string method to convert a delimiter separated string value to a list.

num_list = input("Enter a list of numbers seperated with space: ").split()

Vamware

step 3: iterate over the list elements and convert the data type

The split() method will convert the string into a list, but its elements will remain of string data type. To convert it into integer or number we have to iterate over every element of the list and convert it into int using int() function.

for i in range(num_list):
    #convert the data type of every item of the list to int
    num_list = (num_list[i])

Instead of using the for loop, we could also have used the map function to convert the data type of the list elements.

Vamware

example

num_list = list(map(int, num_list))

Example 1:

Accept a list of numbers as input from the user and compute the average.

#ask the user to enter the items
num_list = input("Enter the list of numbers separated by space: ")

#convert the user entered string to list
num_list = num_list.split()

#convert every item of the list to integer
for i in range(len(num_list)):
    num_list[i] = int(num_list[i])

#compute the average of num_list
average = sum(num_list)/len(num_list)

print(f"The average of {num_list} is: {round(average,2)}")

Output

Enter the list of numbers separated by space: 98 97 99 95 96 94
The average of [98, 97, 99, 95, 96, 94] is: 96.5

Example 2:

Accept the list of numbers from the user and compute its sum.

In the above example, we have used the for loop to convert every item of the num_list to an integer. In this example, we will replace that for loop statement, and try to perform the same tasks using the Python map() function.

#ask the user to enter the items
num_list = input("Enter the list of numbers separated by space: ")

#convert the user entered string to list
num_list = num_list.split()

#convert every item of the list to integer
num_list = list(map(int, num_list))

#sum of the list
total = sum(num_list)

print(f"The sum of {num_list} is: {total}")

Output

Enter the list of numbers separated by space: 100 200 300 400 500
The sum of [100, 200, 300, 400, 500] is: 1500

Example 3:

Accept the list of comma-separated numbers from the user and compute its sum.

Vamware

By default, the split() method converts a string into a list of items that are separated by space. It also accepts an optional argument separator, that defines on which basis the method must split the string.

We can pass the ',' argument to the split() method and it will split() the string separated by ,.

#ask the user to enter the items
num_list = input("Enter the list of numbers separated by comma (,) : ")

#convert the user entered string to list
num_list = num_list.split(',')
# "1,2,3,4,5,6" to ["1", "2", "3", "4", "5", "6"]

#convert every item of the list to integer
num_list = list(map(int, num_list))

#sum of the list
total = sum(num_list)

print(f"The sum of {num_list} is: {total}")

Output

Enter the list of numbers separated by comma (,) : 100,200,300,400,500,600
The sum of [100, 200, 300, 400, 500, 600] is: 2100

Input a list of numbers using the input() and for loop

In the above section, we see how to use the split() method to convert the user entered value to a list. Now let’s see how can we use the input() function with the for loop and input a list of numbers from the user.

Steps to Input a list of numbers using the input() and for loop

step 1: Create an empty list

num_list = []

step 2: Ask the user to enter the size of the list, and accept it as an integer.

size = int(input("Size of the list?: "))

step 3: Run a loop from range 0 to size using the for loop and range() function

for i in range(size):

step 4: Inside the for loop uses the input() function to accept the list item as an integer.

num = int(input("Enter the number: "))

step 5: After accepting the number, append it to the empty list num_list using the append() method.

num_list.append(num)

Example:

Accept a list of integer numbers as input from the user and compute the average of the list.

#declare an empty list
num_list = []

#size of the list
size = int(input("Enter the size of the list: "))

for i in range(size):
    #ask user to enter the list items
    num = int(input("Enter Number: "))
    
    #add the user entered number to the list
    num_list.append(num)

#average of the list
average = sum(num_list)/size

print(f"The Average of list {num_list} is: ", round(average,2))

Output

Enter the size of the list: 5
Enter Number: 98
Enter Number: 90
Enter Number: 97
Enter Number: 96
Enter Number: 95
The Average of list [98, 90, 97, 96, 95] is: 95.2

Input a list of numbers using list comprehension

In the above example, we used the for loop to execute the input() and append() functions multiple times, to add data into an empty python list. With the help of list comprehension, we can short-hand some of the multiple-line code and write the above same for loop statement and its body using a single line of code.

syntax

this is the syntax to input a list of numbers using list comprehension

list_name = [int(input()) for i in range(size)]

Example

Write a script in Python that accepts a list of numbers from the user using list comprehension.

#size of the list
size = int(input("Enter the size of the list: "))

num_list = [int(input("Enter Number: ")) for i in range(size)]

#average of the list
average = sum(num_list)/size

print(f"The Average of list {num_list} is: ", round(average,2))

Output

Enter the size of the list: 5
Enter Number: 98
Enter Number: 97
Enter Number: 96
Enter Number: 97
Enter Number: 98
The Average of list [98, 97, 96, 97, 98] is: 97.2

How to accept nested list input in Python

A Python nested list is also known as a multi-dimensional list. During programming, we may encounter cases where we need to ask the user to enter the value for a matrix(A matrix is a two-dimensional array or list), in such cases we can write a script that accepts nested lust as an input.

Example

Write a program to input a nested list in Python

#rows and columns of the matrix
rows = 4

#input nested list using list comprehension
nested_list = [list(map(int, input("Enter row data: ").split())) for i in range(rows)]

print("The nested list is: ", nested_list)

Output

Enter row data: 1 2 3 4
Enter row data: 5 6 7 8
Enter row data: 9 10 11 12
Enter row data: 13 14 15 16
The nested list is: [[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12], [13, 14, 15, 16]]

Conclusion

In Python, to input value from the user, we use Python’s input() function. The input() function accepts the user input as a string data type and to convert it into a list or any other data type we have to use the split() method or any other type conversion function. In this tutorial, we learned the different techniques to convert the user input to a list of numbers. To convert a user input value to a list, we used the split() method on the user input data. The split() method breaks the string value into a list of string number values separated by the space. And to convert those string number values to int we can use the different approaches among which the map() function is most efficient and legible.

People are also reading:

Author: Vinay Singh

I am a Full Stack Developer with a Bachelor's Degree in Computer Science, who also loves to write technical articles that can help fellow developers.

Leave a Reply

Your email address will not be published.