I want to read an array of integers from single line of input in python3. For example: Read this array to a variable/list
1 3 5 7 9
What I have tried
arr = input.split(' ')
But this does not convert them to integers. It creates array of stringsarr = input.split(' ')
for i,val in enumerate(arr): arr[i] = int(val)
2nd one is working for me. But I am looking for an elegant(Single line) solution.
Use
map
:Just adding, in Python 2.x you don't need the to call
list()
, sincemap()
already returns alist
, but in Python 3.x "many processes that iterate over iterables return iterators themselves".This input must be added with () i.e. parenthesis pairs to encounter the error. This works for both 3.x and 2.x Python
Same can be achieved using list comprehensions:
Here is example on ideone:
arr = [int(i) for i in input().split()]
If you are using Python 2, you should use
raw_input()
instead.