繁体   English   中英

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

[英]Limiting number of input values in an array/list in Python

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

ar = map(int, raw_input().split())

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

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

1 2 3 4 5 6 7 8 9 10

执行“打印 ar”时,它应该显示以下内容,而没有任何错误消息:

[1, 2, 3, 4, 5, 6]

如果你想忽略其余的输入,那么你可以使用切片只取前n输入。 例子 -

n = 6
ar = map(int, raw_input().split(None, n)[:n])

我们还为str.split使用了maxsplit选项,以便它只拆分 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]

如何将ar索引到第 6 个元素? 从技术上讲,它是第 7 个元素,因为newarray将切片,但不包括第 n 个元素

ar = map(int, raw_input().split())
print ar
#[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

newarray=ar[0:6]
print newarray
#[1, 2, 3, 4, 5, 6]

这应该允许无限制的输入

我正在寻找相同问题的解决方案。

我想出我可以在下面做的是我的解决方案。

bookid = []
M = int(input())
S = input().split()
for i in range(M):
    books.append(S[i])
print(booksid)

但我认为这绝对不是最有效的方法,但很容易。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM