列表中的算术运算

时间:2015-10-05 10:46:15

标签: python arrays

我有一个整数列表

[2, 5, 6, 7...n]

我想执行算术运算,以便;

  1. 计算每个元素平方的总和,并且;
  2. 生成每个元素的累积乘法。
  3. 例如:

    1. 2*2 + 5*5 + 6*6 + 7*7+...n*n
    2. 2*5*6*7...*n
    3. 我该怎么做?

3 个答案:

答案 0 :(得分:3)

使用列表推导或循环这是相当简单的:

In [1]: L = [2, 5, 6, 7]

In [2]: sum([e*e for e in L])
Out[2]: 114

In [3]: prod = 1

In [4]: for e in L:
   ...:     prod *= e
   ...:     

In [5]: prod
Out[5]: 420

如果您正在使用NumPy,事情甚至更简单,因为许多数组操作都是矢量化的:

In [7]: import numpy as np

In [8]: a = np.array(L)

In [9]: a**2
Out[9]: array([ 4, 25, 36, 49])

In [10]: np.sum(a**2)
Out[10]: 114

In [11]: np.prod(a)
Out[11]: 420

答案 1 :(得分:2)

总结所有方块:

sum(map(lambda x: x*x, [2, 5, 6, 7...n]))

获取所有项目的产品:

reduce(lambda x,y: x*y, [2, 5, 6, 7...n])

答案 2 :(得分:2)

最简单的方法是遍历列表并执行循环内所需的数学函数,然后将结果附加到外部变量。

my_list = [2,3,5,6,7,8]

square_sum_result = 0
product_result = 1
for number in mylist:
    square_sum_result += pow(number, 2)
    product_result *= number

这很可能不是最有效的方法。