如何在python中的循环中将一行中的整数读取到数组中?

时间:2019-07-19 03:18:45

标签: python python-3.x python-2.7

我正在尝试在循环中的一行中读取整数。例如,如果我需要读取5个Nos,则需要从运行时读取它们,假设为1 3 2 1 2。问题是我不知道我需要读取多少个整数,因为它也会在运行时提供。

到目前为止,我已经尝试过:

c1=input()
c1=int(c1)
for i in range(c1):
    ar[i]=int(input())

但是它将整数读取为:

1
3
2
1
2

有人可以帮忙吗?

4 个答案:

答案 0 :(得分:1)

使用以下命令进行输入:

ar = input().split()

您将收到的输入,即ar [0]将在类'str'中

为了获取整数,可以使用列表理解

ar = [int(data) for data in input().split()]

答案 1 :(得分:1)

# if the enter is formatted as int plus white space. I think this would solve your problem.

num_str = input()  # 1 3 2 1 2
num_str_arr = num_str.split(' ')
num_arr = [int(x) for x in num_str_arr]

print(num_arr)
# output: [1, 3, 2, 1, 2]
# with the list I believe you can do whatever you want.

答案 2 :(得分:0)

您是否正在尝试做类似的事情?'

functions

控制台

import numpy as np
import pydot
from sklearn.datasets import load_iris

iris = load_iris()
test_idx = [0, 50, 100]

train_target = np.delete(iris.target, test_idx)
train_data = np.delete(iris.data, test_idx, axis=0)

test_target = iris.target[test_idx]
test_data = iris.data[test_idx]

clf = tree.DecisionTreeClassifier()
clf.fit(train_data, train_target)

print(test_target)
print(clf.predict(test_data))

from sklearn.externals.six import StringIO

dot_data = StringIO()
tree.export_graphviz(clf,
                out_file=dot_data,
                feature_names=iris.feature_names,
                class_names=iris.target_names,
                filled=True, rounded=True,
                impurity=False)
graph = pydot.graph_from_dot_data(dot_data.getvalue())
graph.write_pdf("iris.pdf")

print(test_data[0], test_target[0])

答案 3 :(得分:0)

您可以简单地通过列表理解将字符串映射到int。

>>> [int(n) for n in input().split()]
2 3 4 5 6 7 8 9
[2, 3, 4, 5, 6, 7, 8, 9]

使用此代码,您无需预先知道会有多少个。因为它们都在同一条线上。

对于没有输入有效整数的情况,这没有错误处理。