On Tue, Feb 9, 2010 at 10:22 AM, Srinivas Reddy Thatiparthy <
srinivas_thatipar...@akebonosoft.com> wrote:

> 1.sum([i for i in range(1000) if i%3==0 or i%5==0])
>

Slightly better would be:
  sum((i for i in range(1000) if i%3==0 or i%5==0))


> 2.gen=(i for i in range(1000))
>   sum([i for i in gen if i%3==0 or i%5==0])
>

What I gave above is a better way of doing this


> 3.sum(filter(lambda a:a%3==0 or a%5==0,range(1000)))
>

avoid lambda's whenever possible. they are difficult to understand, and can
be avoided in most cases. Even Guido dislikes them.


> 4.def generator(m):
>        count=0
>        while count<m:
>                 if count%3==0 or count%5==0:
>                     yield count
>                 count+=1
> sum([i for i in generator(1000)])
>

Overkill.
_______________________________________________
BangPypers mailing list
BangPypers@python.org
http://mail.python.org/mailman/listinfo/bangpypers

Reply via email to