Open In App

How to input multiple values from user in one line in Python?

For instance, in C we can do something like this: 




// Reads two values in one line
scanf("%d %d", &x, &y)

One solution is to use raw_input() two times. 






x, y = input(),  input()

Another solution is to use split() 




x, y = input().split()

Note that we don’t have to explicitly specify split(‘ ‘) because split() uses any whitespace characters as a delimiter as default. One thing to note in the above Python code is, both x and y would be of string. We can convert them to int using another line



x, y = [int(x), int(y)]

# We can also use  list comprehension
x, y = [int(x) for x in [x, y]]

Below is complete one line code to read two integer variables from standard input using split and list comprehension 




# Reads two numbers from input and typecasts them to int using
# list comprehension
x, y = [int(x) for x in input().split()] 




# Reads two numbers from input and typecasts them to int using
# map function
x, y = map(int, input().split())

Instead of using the input function to read a line of input from the user and then processing the line to extract the values, you can use the sys.stdin.readline function to read a line of input and then use the split method and a list comprehension to extract and convert the values to the desired type.




import sys
 
# Read a line of input
# Split the line into a list of values
# Extract and convert the values to integers using a list comprehension
 
line = [int(x) for x in sys.stdin.readline().split() ]


Article Tags :