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

问题描述 投票:3回答:2

这里是Python的总目录。我正在使用Python 3处理CodeAbbey的问题,希望获得帮助,以简化用户输入的代码。

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

3
2 3
4 5
6 7

第一行是案例数,随后的每一行都是具有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)]

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

我尝试过:

entr = [list(int(x) for x in input().split()) for x in input()]

但是它不起作用。

python python-3.x input list-comprehension multiline
2个回答
5
投票

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

entr = [list(int(x) for x in input().split())
        for i in range(int(input()))]
N = len(entr)

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


0
投票

是的,您可以在列表理解中尝试这个

cases = [input().split() for _ in range(int(input()))]
flatList = [int(item) for elem in cases for item in elem]
print(flatList)
© www.soinside.com 2019 - 2024. All rights reserved.