如何使用循环从python中的用户获取输入作为数组?

时间:2020-07-16 15:54:16

标签: python python-3.x

我想从用户那里得到输入,以将数据存储在数组中。假设数组的大小存储在变量“ n”中,并分配了5。现在,我想拥有一个数组的大小,该数组将仅基于n在运行时存储5个值。就像使用arr = input()一样,它应该接受用空格隔开而不是逗号的输入,并且一行也要接受,这意味着它应该像1 2 3 4 5那样接受,如果我打印arr,我应该将上面的arr用逗号隔开[1 ,2,3,4,5] 输入

5 ( Size of Array)
1 2 3 4 2 2 2 (Array exactly like spaces entered in the shell)
array_elem = list(map(int, input().split(' ')))

我尝试了这个。我不确定该怎么做。

如果我必须考虑循环,这是正确的方法吗?

for i in range(5):
    arr = list(map(int, input().split(' ')))

3 个答案:

答案 0 :(得分:1)

我会使用,您不需要循环:

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

答案 1 :(得分:1)

您可以使用逗号输入数字,然后进行分割:

>>> arr = list(map(int, input().split(',')))
1,2,3,4,5
>>> arr
[1, 2, 3, 4, 5]

或者您可以使用空格:

>>> arr = list(map(int, input().split(' ')))
1 2 3 4 5
>>> arr
[1, 2, 3, 4, 5]

编辑: 如果要使用循环,则代码如下:

>>> n = int(input('How many elements: '))
>>> arr = []
>>> for _ in range(n):
...     arr.append(int(input()))
2
3
4
5
6
>>> arr
[2, 3, 4, 5, 6]

答案 2 :(得分:0)

如果您尝试将数组添加到arr

arr=[]
for i in range(2):
    arr.append(list(map(int, input().split(' '))))
print(arr)

及其对1 23 4的输出为

[[1, 2], [3, 4]]

如果您尝试将元素添加到同一arr

arr=[]
for i in range(2):
    arr+=(list(map(int, input().split(' '))))
print(arr)

及其对1 23 4的输出为

[1, 2, 3, 4]