[英]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.