Python中的Sum()用法

5 投票
1 回答
23450 浏览
提问于 2025-04-16 17:39

我一直在努力熟悉Python中的sum()函数,我了解了sum的基本功能,但由于我有数学背景,我很好奇能否像在Mathematica中那样使用sum。比如,看看这个Mathematica模块:

Sq[a_, b_] := Module[{m, n}, m = Max[a, b]; n = Min[a, b];Sum[(m - r + 1) (n - r + 1), {r, 1, n}]]

那么,能不能把sum的部分写成那样呢?我的意思是:

Sum[(m - r + 1) (n - r + 1), {r, 1, n}]

我试着把这个转换成Python,我想到的代码是这样的:

sum((m - r + 1) (n - r + 1) in xrange(1,n+1)) 

但似乎不太管用!所以我想知道怎么才能让它工作?

1 个回答

13
sum((m - r + 1) * (n - r + 1) for r in xrange(1,n+1))

1. 整数之间没有隐含的乘法,所以你需要用 * 来表示乘法。

2. f(x) for x in xes 是列表推导式的一般格式,这里你希望 x 能遍历 xes 中的每一个元素,并返回 f(x) 的值。

撰写回答