Thiru
Thiru

Reputation: 3373

python sum the values of lists of list

I have list of lists and i need to sum the inner lists, for example,

a = [[1,2,3], [2,1,4], [4,3,6]]

for my case, the len of a[i] is same, that is all the inner lists have same dimension.

and i need the output as

result = [6,7,13]

what i did is:

result = [sum(a[i]) for i in range(len(a))]

Since my len(a) is very high, i hope there will be a alternative way to get the result without using the for loop.

Upvotes: 8

Views: 36004

Answers (3)

Artsiom Rudzenka
Artsiom Rudzenka

Reputation: 29121

I know that no one like it but just to give an option:

result = [reduce(lambda x, y: x+y, l) for l in a]

Upvotes: 3

mpenkov
mpenkov

Reputation: 21912

result = map(sum, a)

Is the way I would do it. Alternatively:

result = [sum(b) for b in a]

The second variation is the same as yours, except it avoids the unnecessary range statement. In Python, you can iterate over lists directly without having to keep a separate variable as an index.

Upvotes: 23

Martlark
Martlark

Reputation: 14581

A simple answer.

a = [[1,2,3], [2,1,4], [4,3,6]]
result = [sum(l) for l in a]

result
[6, 7, 13]

Upvotes: 1

Related Questions