我有一个整数列表
[2, 5, 6, 7...n]
我想执行算术运算,以便;
例如:
2*2 + 5*5 + 6*6 + 7*7+...n*n
2*5*6*7...*n
我该怎么做?
答案 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
这很可能不是最有效的方法。