从一行python加载x个数字

从一行python加载x个数字,python,python-3.x,Python,Python 3.x,我正在尝试制作一个程序,它接受一些用python写在一行中的数字,但它并没有按照我期望的方式工作。 我通过以下方式获得输入: x = int(input()) 然后尝试建立一个列表: list = [] for i in range(x): list.append(int(input())) 但这只有在我一个接一个地输入数字时才有效。 我想像这样解析一个输入行 1 2 3 进入一个数字列表。您可以简单地用空格分割输入 >>> inp = input() 1 2 3

我正在尝试制作一个程序,它接受一些用python写在一行中的数字,但它并没有按照我期望的方式工作。 我通过以下方式获得输入:

x = int(input())
然后尝试建立一个列表:

list = []
for i in range(x):
    list.append(int(input()))
但这只有在我一个接一个地输入数字时才有效。 我想像这样解析一个输入行

1 2 3

进入一个数字列表。

您可以简单地用空格分割输入

>>> inp = input()
1 2 3 4
>>> inp.split()
['1', '2', '3', '4']
这将为您提供一个字符串形式的数字列表。要将它们转换为实际整数,可以使用map:

>>> list(map(int, inp.split()))
[1, 2, 3, 4]

您可以简单地用空格分割输入

>>> inp = input()
1 2 3 4
>>> inp.split()
['1', '2', '3', '4']
这将为您提供一个字符串形式的数字列表。要将它们转换为实际整数,可以使用map:

>>> list(map(int, inp.split()))
[1, 2, 3, 4]

添加一些安全措施也不会有什么坏处,以确保用户输入的数字不是其他数字:

inp = input('Enter Numbers:')

lst = [int(i) for i in inp.split() if i.isdigit()]

添加一些安全措施也不会有什么坏处,以确保用户输入的数字不是其他数字:

inp = input('Enter Numbers:')

lst = [int(i) for i in inp.split() if i.isdigit()]

您可以通过使用字符串的
split
方法和列表理解来实现这一点:

num_str = input("Enter number string: ")
num_list = [int(i) for i in num_str.split()]
如果
num\u str
是:
“3 4 6 5 6”

num\u列表将是:
[3,4,6,5,6]

更多信息:

str.split
docs中的信息:

Docstring:S.split([sep[,maxslit]])->字符串列表

使用sep作为分隔符,返回字符串S中的单词列表 一串如果给定maxsplit,则最多完成maxsplit拆分。如果 sep未指定或为无,任何空白字符串都是分隔符 并从结果中删除空字符串。类型:
方法描述符

列表理解:


您可以通过使用字符串的
拆分方法和列表理解来实现这一点:

num_str = input("Enter number string: ")
num_list = [int(i) for i in num_str.split()]
如果
num\u str
是:
“3 4 6 5 6”

num\u列表将是:
[3,4,6,5,6]

更多信息:

str.split
docs中的信息:

Docstring:S.split([sep[,maxslit]])->字符串列表

使用sep作为分隔符,返回字符串S中的单词列表 一串如果给定maxsplit,则最多完成maxsplit拆分。如果 sep未指定或为无,任何空白字符串都是分隔符 并从结果中删除空字符串。类型:
方法描述符

列表理解:


请注意,
list
对于列表来说是一个非常糟糕的变量名,因为您对内置列表进行了阴影处理。谢谢,我将对其进行编辑并将其保留在脑海中。请注意,
list
对于列表来说是一个非常糟糕的变量名,因为您对内置列表进行了阴影处理。谢谢,我将使用
list
对其进行编辑并将其保留在脑海中这里是多余的,因为
split
将已经生成一个列表。@vesche不,这个问题是关于Python3的,
map
将返回一个映射对象。它与
split
返回列表无关。使用列表理解被认为比使用
map
(例如,请参见PEP 279上的GvR评论)更具python风格。但是在任何一种情况下,我都会建议使用一个带有一些错误检查的函数,而不是一个普通的
int()
使用
list
在这里是多余的,因为
split
将已经生成一个列表。@vesche不,这个问题是关于Python3的,
map
将返回一个map对象。它与
split
返回列表无关。使用列表理解被认为比使用
map
(例如,请参见PEP 279上的GvR评论)更具python风格。但是在任何一种情况下,我都会使用带有一些错误检查的函数而不是普通的
int()