我需要把用戶的輸入像列表:在Python中輸入多於1個列表的最佳方法是什麼?
11 20
22 30
32 45
34 54
.. ..
我想:
for i in range(n):
c, d = map(int, input().split())
a.append(c)
b.append(d)
是否有比這更好的辦法?
我需要把用戶的輸入像列表:在Python中輸入多於1個列表的最佳方法是什麼?
11 20
22 30
32 45
34 54
.. ..
我想:
for i in range(n):
c, d = map(int, input().split())
a.append(c)
b.append(d)
是否有比這更好的辦法?
這可能是你想要什麼:
ins = [input("Two integers separated by a whitespace: ") for _ in range(n)]
a, b = [int(i.split()[0]) for i in ins], [int(i.split()[1]) for i in ins]
考慮例外,我覺得代碼下面是更好的:
tip = "Enter two integers separated by a whitespace: "
while n > 0:
try:
c, d = map(int, input(tip).split())
n -= 1
a.append(c)
b.append(d)
except:
print('invalid input!\n')
第一個是令人難以置信的浪費 - 兩個分裂在相同的數據來挑選雙方 - 你可以做一個單一的拆分和解壓縮,如果你想要一個班輪。 – zwer
只需要一些用戶提示和驗證。只要抓住ValueError異常會做到這一點...
for i in range(n):
while True:
try:
c, d = map(int, input("enter 2 numbers separated by whitespace").split())
break
except ValueError:
print("Try again...\n")
a.append(c)
b.append(d)
結果解釋:
>>> n = 10
>>> a = []
>>> b = []
>>> for i in range(n):
while True:
try:
c, d = map(int, input("enter 2 numbers separated by whitespace: ").split())
break
except ValueError:
print("Try again...\n")
a.append(c)
b.append(d)
... ... ... ... ... ... ... ... ...
enter 2 numbers separated by whitespace: 1 2
enter 2 numbers separated by whitespace: 5
Try again...
enter 2 numbers separated by whitespace: 5 6
enter 2 numbers separated by whitespace: 10 11
enter 2 numbers separated by whitespace: 3112 3232
enter 2 numbers separated by whitespace: 1111
Try again...
enter 2 numbers separated by whitespace: 323 333
enter 2 numbers separated by whitespace: 324 334
enter 2 numbers separated by whitespace: 1 1
enter 2 numbers separated by whitespace: 2 2
enter 2 numbers separated by whitespace: 3 3
enter 2 numbers separated by whitespace: 4 4
>>> a
[1, 5, 10, 3112, 323, 324, 1, 2, 3, 4]
>>> b
[2, 6, 11, 3232, 333, 334, 1, 2, 3, 4]
>>>
你需要輸入格式與您指定的方式完全相同?這種做法有什麼問題? – Thundzz
你可以直接通過'[map(int,input().span())作爲範圍(n)]中的_'來追加,但就是這樣。我建議強烈反對,因爲每個不包含由空格分隔的整數列表的條目都會破壞它。一些基本的'input()'驗證總是一個好主意。 – zwer
只要你抓住ValueError並提醒用戶你期望輸入的格式,這實際上是一個體面的方式來做到這一點。 –