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

时间:2015-07-26 22:27:46

标签: python python-3.x input list-comprehension multiline

这里的Python新手总数。我正在使用Python 3处理CodeAbbey的问题,我希望帮助缩短用户输入的代码。

假设我想从用户那里得到这个输入:

(function() {
'use-strict';

var el = document.getElementsByTagName('li');

for(var i=0;i<el.length;i++) {
    if(!el[i].style.display && i%2 !== 0) {
            el[i].className = 'visible';
        }
    }
}());

第一行是案例数,以下每行都是具有2个参数的案例。到目前为止,我已经想过这样做:

3
2 3
4 5
6 7

事情是我宁愿询问列表理解中的所有输入,然后分配N = entr [0]。但是如何在不使用范围(N)的情况下获得列表理解以将输入分解为行?

我试过了:

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)]

但它不起作用。

2 个答案:

答案 0 :(得分:5)

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

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

你的解决方案非常接近。外部迭代只需要迭代(使用range())而不是单个数字。

答案 1 :(得分:0)

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

cases = [input().split() for _ in range(int(input()))]
flatList = [int(item) for elem in cases for item in elem]
print(flatList)