Python 3中具有列表理解功能的多行用户输入

MPa*_*lla 3 python list-comprehension input multiline python-3.x

这里是Python的新手。我正在使用Python 3处理CodeAbbey的问题,并且希望获得帮助以缩短用户输入的代码。

假设我想从用户那里获得此输入:

3
2 3
4 5
6 7
Run Code Online (Sandbox Code Playgroud)

第一行是案例数,接下来的每一行都是案例本身,带有2个参数。到目前为止,我已经想出了这样做的方法:

N=int(input('How many cases will you calculate?\n'))
print('Input parameters separated by spaces:')
entr = [list(int(x) for x in input().split()) for i in range(N)]
Run Code Online (Sandbox Code Playgroud)

问题是我宁愿询问列表理解中的所有输入,然后分配N = entr [0]。但是,如何在不使用range(N)的情况下使列表理解将输入分成几行?

我试过了:

entr = [list(int(x) for x in input().split()) for x in input()]
Run Code Online (Sandbox Code Playgroud)

但这不起作用。

vin*_*nod 5

我没有在列表理解中看到这样做的好处,但是这是一个允许将所有数据复制粘贴到其中的解决方案:

entr = [list(int(x) for x in input().split())
        for i in range(int(input()))]
N = len(entr)
Run Code Online (Sandbox Code Playgroud)

您的解决方案非常接近。仅需要给外部迭代一些要迭代的(使用range()),而不是一个数字。