我想从python3中的单行输入读取一个整数数组。 例如:将此数组读取到变量/列表
1 3 5 7 9
arr = input.split(' ')
但这不会将它们转换为整数。它创建字符串数组
arr = input.split(' ')
for i,val in enumerate(arr): arr[i] = int(val)
答案 0 :(得分:21)
使用map
:
arr = list(map(int, input().split()))
只需添加,在Python 2.x中,您不需要调用list()
,因为map()
已经返回list
,但在Python 3.x中{{3} }。
此输入必须添加()即括号对才能遇到错误。这适用于3.x和2.x Python
答案 1 :(得分:5)
编辑:使用Python近4年之后,只是偶然发现了这个答案,并意识到接受的答案是一个更好的解决方案。
使用list comprehensions可以实现同样的目标:
以下是ideone上的示例:
arr = [int(i) for i in input().split()]
如果您使用的是Python 2,则应使用raw_input()
代替。
答案 2 :(得分:1)
您可以从以下程序中获得良好的参考
# 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)
答案 3 :(得分:0)
您可以在下面的代码中尝试以下代码,该代码从用户处获取输入并将其读取为数组而不是列表。
from array import *
a = array('i',(int(i) for i in input('Enter Number:').split()))
print(type(a))
print(a)
另外,如果您希望将其转换为列表:
b = a.tolist()
print(type(b))
print(b)