我正在使用input().split()
方法从python中以空格分隔的单行输入中输入列表中的元素。但是,我找不到限制输入的方法。就像用户在单行中提供超出预期的输入一样,是否有任何方法可以检查?
我了解了assert方法,但是无法正确实现。
import numpy
m,n = map(int,input().split())
a = numpy.array([input().split() for i in range(n)], int)
print(a)
输入:
3 2
1 2 3 4 5
3 4 5 6 7
输出:
[[1 2 3 4 5]
[3 4 5 6 7]]
我希望该行每行包含3个元素,并且应避免/丢弃其余条目,而不会出现任何错误。请帮忙。 预期输出:
[[1 2 3]
[3 4 5]]
答案 0 :(得分:0)
def get_input():
user_input = input("Input: ")
split_input = user_input.split()
if len(split_input) > 3:
raise Exception("Too much input")
return split_input
您可以有一些输出或临时输入等,而不是引发异常。
答案 1 :(得分:0)
您的代码基本上在那里,我只用list slicing来限制元素的最大数量,例如lst[:3]
计算得出的列表最多包含3个元素。
在您的示例中,这将是:
import numpy
m,n = map(int,input().split())
a = numpy.array([input().split()[:m] for i in range(n)], int)
print(a)