我一直试图对python中的sum()感到满意,我确实理解了sum的基本功能,但作为mathematica背景,我只是好奇地知道我们可以像在mathematica中一样使用python中的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}]]
Run Code Online (Sandbox Code Playgroud)
现在,是否可以像这样编写总和部分?我的意思是:
Sum[(m - r + 1) (n - r + 1), {r, 1, n}]
Run Code Online (Sandbox Code Playgroud)
试图在python中转换它,我想到这样的事情:
sum((m - r + 1) (n - r + 1) in xrange(1,n+1))
Run Code Online (Sandbox Code Playgroud)
但似乎没有工作!所以我的问题是如何让它工作?
Seb*_*olm 13
sum((m - r + 1) * (n - r + 1) for r in xrange(1,n+1))
Run Code Online (Sandbox Code Playgroud)
*.f(x) for x in xes是列表推导的一般格式,您希望x迭代每个元素xes,并返回值f(x).