我需要把用户的输入像列表:在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并提醒用户你期望输入的格式,这实际上是一个体面的方式来做到这一点。 –