这里是 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()]
但它不起作用。
原文由 MPadilla 发布,翻译遵循 CC BY-SA 4.0 许可协议
我看不出在列表理解中这样做有什么好处,但这里有一个允许将所有数据复制粘贴到的解决方案:
您的解决方案非常接近。只需要给外部迭代一些东西来迭代(使用
range()
)而不是一个数字。