有效地编程数组元素以在python

时间:2017-07-01 19:33:18

标签: python

我希望在python中实现一个简单的算法,它将数组和总和作为输入,并找到一个数字 X ,其中如果数组中的所有元素都是> X 转换为 X ,数组中的所有元素都应加起来。

我该如何有效地做到这一点?

这是我的代码:

result = []
for _ in range(int(raw_input())):
     input_array = map(int,raw_input().split())
     sum_target = raw_input()
     for e in input_array:
        test_array = input_array
        test_array[test_array > e] = e // supposed to replace all elements > e with e, but what's wrong here?
        if sum(test_array) == sum_target:
            result.append(e)

print result

1 个答案:

答案 0 :(得分:0)

使用Numpy库(import numpy),您可以替换

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

 input_array = numpy.array(raw_input().split()).astype(int)

然后

    test_array[test_array > e] = e

正常工作。然后,您也可以test_array.sum()

(也就是说,如果你想要就地修改数组,否则你可以替换

    test_array = input_array

    test_array = np.array(input_array)