【问题标题】:How to take an input of line separated integers as a list in python [duplicate]如何将行分隔整数的输入作为python中的列表[重复]
【发布时间】:2020-07-04 02:22:23
【问题描述】:

给定一组以行分隔的整数作为输入,例如....

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] 的第一个元素 甚至尝试使用范围,没有区别 请问,我哪里错了?

【问题讨论】:

  • 您无法读取由换行符通过input() 分隔的数字。

标签: python list


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2021-12-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-17
    • 2015-02-11
    • 2021-04-16
    相关资源
    最近更新 更多