限制Python中数组/列表中的输入值数量

abe*_*des 6 python arrays split input list

我使用以下语句在列表中获取输入值:

ar = map(int, raw_input().split())
Run Code Online (Sandbox Code Playgroud)

但是,我想限制用户一次可以提供的输入数量.例如,如果限制由数字n指定,则数组应仅捕获程序期间输入的前n个值.

例如:如果n = 6,输入:

1 2 3 4 5 6 7 8 9 10
Run Code Online (Sandbox Code Playgroud)

在执行'print ar'时,它应显示以下内容而不显示任何错误消息:

[1, 2, 3, 4, 5, 6]
Run Code Online (Sandbox Code Playgroud)

Ana*_*mar 5

如果您想忽略其余输入,则可以使用切片仅获取第一个n输入。例子 -

n = 6
ar = map(int, raw_input().split(None, n)[:n])
Run Code Online (Sandbox Code Playgroud)

我们还使用了maxsplitfor 选项,str.split以便它只拆分 6 次,然后取前 6 个元素并将它们转换为 int。

这是为了提高性能。我们也可以做简单的 -ar = map(int, raw_input().split())[:n]但它的性能会低于上述解决方案。

演示 -

>>> n = 6
>>> ar = map(int, raw_input().split(None, n)[:n])
1 2 3 4 5 6 7 8 9 0 1 2 3 4 6
>>> print ar
[1, 2, 3, 4, 5, 6]
Run Code Online (Sandbox Code Playgroud)