Chris Rebert <c...@rebertia.com> writes:

> tlist = [pair for pair in ((obj, obj.intersect(ray)) for obj in
> self.objs) if pair[1] is not None]
>
> Should it be done? Probably not. [Compared to a ‘for’ suite with an
> ‘if’ suite, it's] less readable and less efficient.

I disagree on the “less efficient”, unless you've measured it. The
Python compiler and machine make list comprehensions and generator
expressions turn into quite efficient code.

I also disagree on “less readable”, if you show the structure and choose
meaningful names (I can only guess at the meaning from the OP's code)::

    tribbles = [
        (obj, tribble) for (obj, tribble) in (
            (obj, obj.intersect(ray))
            for obj in self.objs)
        if tribble is not None]

-- 
 \     “I must say that I find television very educational. The minute |
  `\       somebody turns it on, I go to the library and read a book.” |
_o__)                                                    —Groucho Marx |
Ben Finney
-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to