如何在一条线上接受未知数量的输入?

问题描述:

我知道如何在一条线上接受多个输入,但我只能这样做,如果输入的数量是预先定义的。在这个代码段:如何在一条线上接受未知数量的输入?

rows, tile1, tile2, column, tile3 = map(int, input().split(" ")) 

我想要的输入的数量中的行和列之间以依赖于行输入的号码,我想输入的数目后柱依赖于在列输入的号码,但我无法弄清楚如何做到这一点。

在Python 3,你可以使用这个语法:

a, b, c, d, *e = map(int, input().split()) 

abcd将是前四个值,并e将所有剩余值的列表。

在你的情况,你需要做这样的事情:

rows, *rest = map(int, input().split()) 

因为你不知道在哪个位置column值将是,我怕你会无法使用此功能来实现您想要的功能。

如果你能够让其他部分之前用户输入都rowscolumns,你可以做这样的:

rows, columns, *tiles = map(int, input().split()) 

然后你可以参考具体的瓦片tiles[0]tiles[1]等。

+0

这很有道理。我从来没有想过使用星号运算符。谢谢! – str1kebeam

+0

@ str1kebeam - [Extended Iterable Unpacking](https://www.python.org/dev/peps/pep-3132/) – wwii