这里的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)]
但它不起作用。
答案 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)