2017-02-25 56 views
2

我知道如何在一條線上接受多個輸入,但我只能這樣做,如果輸入的數量是預先定義的。在這個代碼段:如何在一條線上接受未知數量的輸入?

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

我想要的輸入的數量中的行和列之間以依賴於行輸入的號碼,我想輸入的數目後柱依賴於在列輸入的號碼,但我無法弄清楚如何做到這一點。

回答

3

在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