首页 > 解决方案 > 如何将行分隔整数的输入作为python中的列表

问题描述

您将获得一组由行分隔的整数作为输入,例如....

7
2
4
5
8
9

但是您希望在多次尝试后将所有这些转换为程序的 lst,例如 [7,2,4,5,8,9],例如

nums = int (input())
lst = []
for i in nums:
    lst.append(int (i))
print (list)

不幸的是,这仅输出输入的第一个元素[7] 甚至尝试使用范围,没有区别请,我错了什么?

标签: pythonlist

解决方案


input只返回一行。您需要反复调用input以获取每一行,直到input返回一个空字符串。

但是,使用该模块要容易得多fileinput,它既可以从标准输入中读取,也可以从作为参数传递的一个或多个文件中读取。

import fileinput

lst = [int(x) for x in fileinput.input()]

然后,如果您的号码在一个名为 的文件中numbers.txt,您可以使用以下任一方式运行您的脚本

script.py < numbers.txt

从标准输入读取数字,或

script.py numbers.txt

fileinput模块打开文件并直接从中读取。事实上,如果您有多个文件,您可以将它们全部传递并fileinput使用相同的循环一个接一个地读取它们:

script numbers.txt more_numbers.txt even_more_numbers.txt

推荐阅读