如何在python中从用户读取数组元素

我正在尝试将数组元素读取为

4 #no. of elements to be read in array
1 2 3 4 

我通过引用其他答案所尝试的

def main():

    n=int(input("how many number you want to enter:"))
    l=[]
    for i in range(n):
        l.append(int(input()))

如果我输入为

4 #no. of elements to be read
1
2
3
4

但如果我尝试给予喜欢

4 #no. of element to be read

1 2 3 4

我得到错误:

ValueError: invalid literal for int() with base 10: '1 2 3 4'

请在这件事上给予我帮助

stack overflow how to read array elements from user in python
原文答案

答案:

作者头像

由于 Python 中没有输入分隔符,因此您应该使用 split 并拆分您从用户那里收到的输入:

lst = your_input.split()
作者头像

你的第一种方法是好的,第二种方法使用这个:

n=int(input("how many number you want to enter:"))
l=map(int, input().split())[:n] # l is now a list of at most n integers

这将在用户输入( mapintsplit1 在你的例子中。

它还使用切片( 2 之后的 3 )来切片,以防用户放入更多整数。

作者头像
n = input("how many number you want to enter :")

l=readerinput.split(" ")
作者头像

input() 函数返回用户输入的字符串。 int() 函数期望将数字作为字符串转换为相应的数字值。所以 int('3') 将返回 3。但是当您输入像 1 2 3 4 这样的字符串时,函数 int() 不知道如何转换它。

您可以按照第一个示例进行操作:

    n = int(input('How many do you want to read?'))
    alist = [] 

    for i in range(n):
        x = int(input('-->'))
        alist.append(x)

以上要求您一次只输入一个数字。

另一种方法是拆分字符串。

    x = input('Enter a bunch of numbers separated by a space:')
    alist = [int(i) for i in x.split()]

split() 方法以字符串形式返回数字列表,不包括空格