我在获取输入并将其附加到数组的代码中出错



您得到N个棒,其中每个棒的长度是一个正整数。对棒进行切割操作,使所有棒都减少最小棒的长度。给定N根棍子的长度,在每次后续切割操作之前打印剩余的棍子数量注意:对于每次切割操作,您必须重新计算最小棒的长度(不包括零长度棒(。

输入第一行包含单个整数N。

下一行包含N个用空格分隔的整数,其中每个整数表示第i个棒的长度。

6

5 4 2 2 8

输出对于每个操作,在单独的行上打印切割的棒数。

6

4

2

1

解释

import array as arr
n = int(input())
a = arr.array('i',[1002])
for i in range(n):
c = [int(x) for x in input().split()]
a.append(c)
t=n
for i in range(0,1001):
if a[i] > 0:
print(t)
t=t-a[i]

不能将列表追加到整数数组中。如果要合并两个数组,可以使用extend方法。

a.extend(c)

如果一个是列表,那么下面所有的都满足,但这里是数组,所以我们不能用数组附加列表

a = [1,2,3] # a is a list
c = [4] # c is list

不管怎样都不会给你正确的结果

print(a.append(c)) # if we do a.append(c) result is like a = [1,2,3,[4]]

在任何情况下都能给你正确的结果

print(a.extend(c)) # if we do a.extend(c) result is like a = [1,2,3,4]

满足如果";a";是列表,并且";c";是列表或";a";是数组;c";也是一个阵列

a += c # a += c result is same as a.extend(c)
print(a) # a = [1,2,3,4]

最新更新