This should be trivial:
I am looking to extract the first non-None element in a list, and "None" otherwise. Here's one implementation: >>> x = reduce(lambda x,y: x or y, [None,None,1,None,2,None], None) >>> print x 1 I thought maybe a generator expression would be better, to prevent iterating over the whole list: >>> x = ( x for x in [None,1,2] if x is not None ).next() >>> print x 1 However, the generator expression throws if the list is entirely None. With list comprehensions, a solution is: >>> x = ([ x for x in [None,1,2] if x is not None ] + [ None ] )[0] But this can be expensive memory wise. Is there a way to concatenate generator expressions? More importantly, Is there a better way? (In one line?) Thanks, W -- http://mail.python.org/mailman/listinfo/python-list