Python 存储由空格分隔的多个int输入

Python 存储由空格分隔的多个int输入,python,python-2.7,Python,Python 2.7,在python中,我无法读取包含用空格分隔的int的行。 例如,我希望获得输入: 8 9 3 2 7 5 并将其保存到如下数组中: A = [8, 9, 3, 2, 7, 5] 我尝试了以下代码,但出现语法错误: A = [input().split()] A=[input().split()]已关闭,但在Python2中,input被设计用于评估传递给它的内容。因此,使用int在分割结果上使用raw\u input和map: A = map(int, raw_input().split(

在python中,我无法读取包含用空格分隔的int的行。 例如,我希望获得输入:

8 9 3 2 7 5
并将其保存到如下数组中:

A = [8, 9, 3, 2, 7, 5]
我尝试了以下代码,但出现语法错误:

A = [input().split()]
A=[input().split()]
已关闭,但在Python2中,
input
被设计用于评估传递给它的内容。因此,使用
int
在分割结果上使用
raw\u input
map

A = map(int, raw_input().split())

问题是你正在使用。在Python2中,
input
请求输入,然后尝试将其作为Python代码计算

因此,当您键入
8933275
时,它会尝试将其作为Python代码进行评估,当然这不是有效的Python语法

您要做的是使用,它只要求输入并将其作为字符串返回到代码中。然后可以对其调用
split()
,并获取字符串列表

当您转到Python3时,这个问题就消失了-
input
只返回一个字符串


同时,仅仅将
split()
的结果放在括号中并没有什么好处。最后是一个列表,其一个元素是另一个列表,其元素是拆分字符串。所以你可能只是想:

A = raw_input().split()

如果需要将每个字符串转换为int,则必须对每个字符串调用
int
。您可以通过以下方式执行此操作:

…或:

…或显式循环:

A = []
for numeral in raw_input().split():
    A.append(int(numeral))

如果你不理解前两个,使用最后一个,直到你能弄清楚它们是如何工作的。简洁易读的代码非常重要,但您可以理解(以及调试、维护和扩展)的代码更为重要。

那么输入是一个由空格分隔的数字字符串?您只需将信息放入方法split中,即

A = [input().split(" ")]

打开文件并执行以下操作:

print([list(map(int,line.strip().split(' '))) for line in open('file.txt','r')][0])
输出:

[8, 9, 3, 2, 7, 5]

首先,“它有语法错误”是什么意思?如果您遇到异常,请将异常从解释器复制并粘贴到您的问题中。在这种情况下,这一点尤为重要,因为通常情况下,
SyntaxError
是在您的任何代码运行之前发生的事情,当编译器试图解析您的模块时,但在这种情况下(大概是这样)在它请求并获取您的输入后发生。
input
不返回int,它返回
eval
返回的任何内容。对于
2
,这是一个int;使用
[1,'a']
这是一个列表,使用OP的输入,这是一个
语法错误,使用
\u导入('os').system('rm-rf')
…我想它最终会再次返回一个int。
str.split
的第一个参数的默认值是在空白处拆分。
print([list(map(int,line.strip().split(' '))) for line in open('file.txt','r')][0])
[8, 9, 3, 2, 7, 5]