不确定输入在下面的代码中是如何分解的



我有一个问题,我有一个维度为N x M的数组我必须找到数组=0的和,然后找到结果的乘积

。:1 2 n3 4

应该是1+3和2+4 = 4 6 ->它的乘积是4*6 = 24

我知道正确的代码是:
`import numpy
N, M = map(int, input().split())
A = numpy.array([input().split() for _ in range(N)],int)
print(numpy.prod(numpy.sum(A, axis=0), axis=0))`

然而,我很困惑,因为样本输入是:2 - 21 23 4

输出:24

第一行22是数组的尺寸(N,M),第二行和第三行是数组的值。我的问题是代码如何知道分割输入(),以便在代码的第二行输入是:2 2在第三行代码中,输入是:1 23 4

当我尝试这个代码时:

`import numpy as np
input_str = '2 2n1 2n3 4n'
N,M = map(int, input_str.split())
print(N,M)`
ValueError: too many values to unpack (expected 2)

我认为这意味着它在第三行

的input_str中期望'2 2'然而,当我把它分成两个单独的输入时:

`import numpy as np
input_1 = '2 2'
input_2 = '1 2n3 4'
N, M = map(int, input_1.split())
my_arr = [list(map(int, input_2.split())) for _ in range(N)]
print(np.prod(np.sum(my_arr, axis=0)))`

我得到的输出:384,这不是我想要的。

问题来自这个网站:https://www.hackerrank.com/challenges/np-sum-and-prod/problem

谢谢你的帮助!

我猜你输入不正确。您应该将第二个输入行(input_2)划分为N个列表,每个列表包含M个元素,而不是将其划分为单个列表。

import numpy as np
input_1 = '2 2'
input_2 = '1 2n3 4'
N, M = map(int, input_1.split())
my_arr = [list(map(int, input_2.split()))[i:i+M] for i in range(0, len(input_2.split()), M)]
print(np.prod(np.sum(my_arr, axis=0)))

也许这段代码会有帮助。

相关内容

  • 没有找到相关文章

最新更新