2010-09-10 5 views
4

Я новичок в Python.Сумма чисел в массиве

При этом site они показывают, как суммировать список целых чисел.

Что делать, если вместо списка необработанных Интсов, вы имели список

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

    def getNumber(self) : 
     return self.number 

Что код Python просуммировать self.number в массиве в нескольких строках (надеюсь)?

+0

Спасибо всем за указание моей ошибки массив и список. Исправлена. – sivabudh

ответ

2

Попробуйте это:

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

Кстати, [1, 2, 3] является список, а не массив.

1

Используйте генератор или список понимание:

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

Просто, он вызывает метод getNumber() по каждому пункту перед тем суммированием.

4

Я предполагаю, что вы имеете в виду список или, возможно, другой вид Iterable:

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

-1

Вот несколько способов сделать это:

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, спасибо за отношение. Но я все равно буду благодарить вас за то, что показал мне несколько разных способов решения проблемы. – sivabudh

+0

удерживайте, если последний не будет «lambda x, e: x + e.getNumber(), L, 0'? –

+0

что, если это python 3.0, можем ли мы использовать что-то другое вместо reduce()? См .: http://www.artima.com/weblogs/viewpost.jsp?thread=98196 – sivabudh

Смежные вопросы