Newbie: list comprehension troubles..

Bruno Desthuilliers bruno.42.desthuilliers at websiteburo.invalid
Mon Aug 24 10:54:31 CEST 2009

mm a écrit :
> Hi, I'm trying to replace this...
>         # this works but there must be a more pythonic way, right?
>         tlist = []
>         for obj in self.objs:
>             t = obj.intersect(ray)
>             if (t != None):

hint 1 : this is Python, you don't need parens around conditionals.
hint 2 : None is a singleton, so the usual idiom is to test for identity 
('is') instead of equality ('==')

IOW, make this line:

               if t is not None:

>                 tlist.append((obj,t))
> with a list comprehension- can it be done?

See other answers here. As far as I'm concerned, while being a great fan 
of list comps etc, I'd stick with the plain old for loop here - much 
more readable if nothing else.

More information about the Python-list mailing list