[Tutor] List comp question

Kent Johnson kent37 at tds.net
Thu Nov 1 18:59:29 CET 2007


I am building a list like this:

     tree = []
     for top in tops:
         l2 = level2(top)
         if l2:
             tree.append((top, l2))

I would really like to turn this into a list comprehension:

tree = [ (top, level2(top)) for top in tops if level2(top) ]

but the call to level2() is expensive enough that I don't want to repeat 
it. Is there any way to do this or am I stuck with the (IMO ugly) loop form?

Kent

who actually does have a question occasionally :-)


More information about the Tutor mailing list