Sum() en python
J'ai essayé d'être à l'aise avec la somme de() en python, j'ai compris le fonctionnement de base de la somme, mais comme un mathematica fond d'écran,je viens de inquistive à savoir peut-on utiliser la somme en python de la même manière, comme nous n'en mathematica par exemple, considérons cette mathematica module:
Sq[a_, b_] := Module[{m, n}, m = Max[a, b]; n = Min[a, b];Sum[(m - r + 1) (n - r + 1), {r, 1, n}]]
Maintenant,serait-il possible d'écrire la somme de la partie comme ça? Je veux dire:
Sum[(m - r + 1) (n - r + 1), {r, 1, n}]
Essayer de transformer cela en python,je pense à quelque chose comme ceci:
sum((m - r + 1) (n - r + 1) in xrange(1,n+1))
mais ne semble pas fonctionner! donc ma question comment faire pour le faire fonctionner?
OriginalL'auteur Quixotic | 2011-05-15
Vous devez vous connecter pour publier un commentaire.
*
.f(x) for x in xes
est le format général d'une compréhension de liste, où vous voulezx
pour parcourir chaque élément dexes
, et de donner en retour la valeurf(x)
.sum((m - r + 1) * (n - r + 1) for r in range(1,n+1))
trop de travaux.La différence entre les deux est que dans Python 2.x,
range
retourne une liste réelle, qui peut être très gourmande en mémoire si la liste est grande.xrange
est un objet iterable qui génère les nombres dans l'ordre plutôt que de retourner une liste réelle. (En Python 3,xrange
s'en va etrange
devient une mémoire efficace itérable)OriginalL'auteur Sebastian Paaske Tørholm