Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to read an array of integers from single line of input in python3

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

  1. arr = input.split(' ') But this does not convert them to integers. It creates array of strings

  2. arr = 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.

like image 645
Sachin Avatar asked Aug 20 '13 10:08

Sachin


2 Answers

Use map:

arr = list(map(int, input().split()))

Just adding, in Python 2.x you don't need the to call list(), since map() already returns a list, 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

like image 183
Saullo G. P. Castro Avatar answered Sep 27 '22 23:09

Saullo G. P. Castro


You can get a good reference from the following program

# The following command can take n number of inputs 
n,k=map(int, input().split(' '))
a=list(map(int,input().split(' ')))
count=0
for each in a:
    if each >= a[k-1] and each !=0:
        count+=1
print(count)
like image 33
Vamsi kalyan Avatar answered Sep 27 '22 21:09

Vamsi kalyan