【发布时间】:2015-10-17 00:25:51
【问题描述】:
这里是 Python 的新手。我正在使用 Python 3 解决 CodeAbbey 的问题,我希望帮助缩短用户输入的代码。
假设我想从用户那里得到这个输入:
3
2 3
4 5
6 7
第一行是case的数量,接下来的每一行都是case本身,有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()]
但它不起作用。
【问题讨论】:
-
不要使用列表推导,因为它们会让你更难让它工作。使用普通循环。
-
“问题是我宁愿询问列表理解中的所有输入” 为什么?更短并不总是更好。你已经拥有的更清楚了。
-
@ minitech♦ 我不知道,好吧...我只是假设对于用户来说,将输入粘贴到 1 go 中会更舒服,而不是:询问长度,询问案例。
-
@poke 你如何在这里使用普通循环?
-
在获取用户输入的同时循环并收集列表中的数字。不要让它变得复杂,而要简单。
标签: python python-3.x input list-comprehension multiline