Kent Johnson wrote: > 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? >
Just playing around here, but would this work and be better???? tree = [ pair for pair in [ (top, level2(top)) for top in tops ] if pair[1] ] _______________________________________________ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor