我使用以下语句在列表中获取输入值:
ar = map(int, raw_input().split())
但是,我想限制用户一次可以提供的输入数量。例如,如果限制由数字n指定,则数组应仅捕获程序期间输入的前n个值。
例如:如果n = 6, 输入:
1 2 3 4 5 6 7 8 9 10
在执行'print ar'时,它应显示以下内容而不显示任何错误消息:
[1, 2, 3, 4, 5, 6]
答案 0 :(得分:4)
如果要忽略输入的其余部分,则可以使用切片仅采用第一个n
输入。示例 -
n = 6
ar = map(int, raw_input().split(None, n)[:n])
我们还使用maxsplit
的{{1}}选项,使其仅拆分6次,然后获取前6个元素并将它们转换为int。
这是为了更多的表现。我们也可以做到这一点 - str.split
,但它的性能不如上述解决方案。
演示 -
ar = map(int, raw_input().split())[:n]
答案 1 :(得分:1)
如何将git submodule update --recursive --init
索引到第6个元素?从技术上讲,它是第7个元素,因为ar
将切入,但不包括第n个元素
newarray
这应该允许无限输入
答案 2 :(得分:0)
我正在寻找相同问题的解决方案。
我想出了下面我能做的就是我的解决方案。
bookid = []
M = int(input())
S = input().split()
for i in range(M):
books.append(S[i])
print(booksid)
但我认为这绝对不是最有效的方法,但很容易。