我想从 python3 中的单行输入中读取整数数组。例如:将这个数组读入一个变量/列表
1 3 5 7 9
我试过的
arr = input.split(' ')
但这不会将它们转换为整数。它创建字符串数组arr = input.split(' ')
for i,val in enumerate(arr): arr[i] = int(val)
第二个为我工作。但我正在寻找一个优雅的(单线)解决方案。
我想从 python3 中的单行输入中读取整数数组。例如:将这个数组读入一个变量/列表
1 3 5 7 9
arr = input.split(' ')
但这不会将它们转换为整数。它创建字符串数组
arr = input.split(' ')
for i,val in enumerate(arr): arr[i] = int(val)
第二个为我工作。但我正在寻找一个优雅的(单线)解决方案。
使用map
:
arr = list(map(int, input().split()))
只需添加,在 Python 2.x 中您不需要 to call list()
,因为map()
已经返回 a list
,但在 Python 3.x 中“许多迭代迭代器的进程本身返回迭代器”。
此输入必须添加 () 即括号对才能遇到错误。这适用于 3.x 和 2.x Python
您可以从以下程序中获得很好的参考
# 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)
您可以尝试以下代码,该代码从用户获取输入并将其读取为数组而不是列表。
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)