2010-09-10 15 views
4

Je suis un débutant Python.Numéros de somme dans un tableau

A ce site, ils montrent comment sommer la liste des entiers.

Et si au lieu d'une liste des ints premières, vous aviez une liste des

class Number : 
    def __init__(self, x = 0) : 
     self.number = x  

    def getNumber(self) : 
     return self.number 

Quel est le code Python pour résumer la self.number dans un tableau en quelques lignes (espérons-le)?

+0

Merci à tous d'avoir signalé mon erreur de tableau et liste. Fixé. – sivabudh

Répondre

2

Essayez ceci:

sum(x.getNumber() for x in l) 

Par ailleurs, [1, 2, 3] est une liste , pas un tableau.

1

Utilisez un générateur ou la compréhension liste:

numbers = [Number(1), Number(2)] 
sum(n.getNumber() for n in numbers) 

Simplement, il appelle la méthode getNumber() sur chaque élément avant de les additionner.

4

Je suppose que vous voulez dire une liste ou peut-être un autre type de itérables:

sum(x.getNumber() for x in L)

-1

Voici plusieurs façons de le faire:

sum(e.getNumber() for e in L) 

sum(e.number for e in L) 

reduce(lambda a,b: a + b.getNumber(), L, 0) # likewise for e.number 
+0

Geez, merci pour l'attitude. Mais je vous remercierai quand même de m'avoir montré plusieurs façons de résoudre le problème. – sivabudh

+0

tenir, si le dernier n'est pas 'lambda x, e: x + e.getNumber(), L, 0'? –

+0

et si c'est python 3.0, pouvons-nous utiliser autre chose au lieu de reduce()? Voir: http://www.artima.com/weblogs/viewpost.jsp?thread=98196 – sivabudh