从一行python加载x个数字
我正在尝试制作一个程序,它接受一些用python写在一行中的数字,但它并没有按照我期望的方式工作。 我通过以下方式获得输入:从一行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
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()