Python 使用输入读取多行()

Python 使用输入读取多行(),python,python-3.x,list,input,Python,Python 3.x,List,Input,示例输入1: 1 10 100 200 201 210 900 1000 样本输入2: 4 49 2 59 所以我不知道输入有多少行,我想把输入组织成一个2d数组。一次提交所有行(无多个input()) 编辑: 对不起,我的I/O很糟糕。以下是我想要的: nums = [] for i in range(0,endofinput): nums.append(list(map(int, input().split()))) print(nums) 问题是,我不知道会有多少输入。我不能

示例输入1:

1 10
100 200
201 210
900 1000
样本输入2:

4 49
2 59
所以我不知道输入有多少行,我想把输入组织成一个2d数组。一次提交所有行(无多个
input()

编辑: 对不起,我的I/O很糟糕。以下是我想要的:

nums = []
for i in range(0,endofinput):
    nums.append(list(map(int, input().split())))
print(nums)

问题是,我不知道会有多少输入。我不能控制输入,所以我不能只做一个while循环来检测下一个输入何时为“”。是否有可能知道我将获得多少行输入?

您对输入格式有多大的控制权?(是否来自某个外部自动化系统?来自用户?来自另一个脚本?)

假设您有一些控制措施,您可以实现一个哨兵值,例如空行,以检测输入的结束。然后

l = []
data = input(':')
while data:
    l.append(list(map(int, data.split())))
将从整数列表中读取以空格分隔的整数行,直到读取空行。

通常,
input()
只接受单行。我知道传递多行的唯一方法是粘贴复制的文本块。程序处理这些行,就好像它们是一行一行输入的一样。告诉您的程序输入已经结束的唯一方法是输入一些停止码,或者更时髦的是,按Ctrl-D键(经典的文件结束标记)

print("Enter multiple lines, press Ctrl-D after last line:")
Array=[]
while True:
    try:
        Array.append([int(a) for a in input().split(" ")])
    except EOFError:
        print(len(Array),"lines of data have been received.")
        break
粘贴四行并按[Enter]和[Ctrl-D]后的结果:

Enter multiple lines, press Ctrl-D after last line:
1 10
100 200
201 210
900 1000
4 lines of data have been received.
>>> Array
[[1, 10], [100, 200], [201, 210], [900, 1000]]
>>>         

你试过什么?我试过把字符串拆分成这样:nums=list(map(int,input().split())显然不起作用。我还尝试为when input()==“”编写for循环,但后来我意识到只有一个输入是整个块。真的不知道该怎么做。你说“一次提交”是什么意思<代码>输入从标准输入中读取一个字符串,该字符串由当前理解为终止一行的任何字符终止。嗯,最好编辑您的问题并具体描述问题(您正试图用一个可复制的示例来做什么)。我以为你的问题在别处。按编辑链接并将其添加到您的问题中。可能存在重复的问题