使用input()

时间:2017-01-04 17:09:59

标签: python list python-3.x

示例输入1:

1 10
100 200
201 210
900 1000

示例输入2:

4 49
2 59

所以我不知道输入的行数是多少,我想将输入组织成一个二维数组。这些行一次全部提交(没有多个input())。

编辑: 对不起我对I / O很糟糕。这就是我想要的:

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

问题是,我不知道会有多少输入。我无法控制输入,所以我不能只做一个while循环来检测下一个输入是“”。有没有办法知道我会得到多少输入线?

2 个答案:

答案 0 :(得分:1)

您对输入的格式有多少控制? (它是来自一些外部自动化系统吗?来自用户?来自另一个脚本?)

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

l = []
data = input(':')
while data:
    l.append(list(map(int, data.split())))

将以空格分隔的整数行读取为整数列表,直到它读取空行。

答案 1 :(得分:1)

通常,from django.http import HttpResponse, HttpResponseForbidden def a_view(request): last_post_value = request.session.get('value') current_post_value = request.POST.get('value') if last_post_value > current_post_value: return HttpResponseForbidden() request.session['value'] = current_post_value return HttpResponse() 仅接受单行。我知道传递多行的唯一方法是粘贴复制的文本块。该程序处理这些行,就好像它们已经逐个输入一样。告诉程序已达到输入结束的唯一方法是输入一些停止代码或更时尚,按Ctrl-D,即经典的End-Of-File标记。

input()

粘贴四行后按[Enter]和[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