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