listcomprehension, add elements?

Paul Hankin paul.hankin at gmail.com
Mon Jun 23 01:23:34 CEST 2008


On Jun 23, 10:32 am, cirfu <circularf... at yahoo.se> wrote:
> [a+b for a,b in zip(xrange(1,51), xrange(50,0,-1))]
>
> [51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51,
> 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51,
> 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51]
>
> i want to add all the elemtns a s well. can i do this all in a
> listcomprehension?
>
> i can do this ofc:
> reduce(lambda x,y:x+y,[a+b for a,b in zip(xrange(1,51),
> xrange(50,0,-1))])
>
> but reduce is a functional way of doing it, what is the more pythonic
> way of doing this?

Use the builtin 'sum' function.

sum(a + b for a, b in zip(xrange(1, 51), xrange(50, 0, -1)))

--
Paul Hankin



More information about the Python-list mailing list