first of not None

Serge Matveenko serge at matveenko.ru
Thu Oct 9 03:19:29 EDT 2008


On 10/9/08, Serge Matveenko <serge at matveenko.ru> wrote:
> I need to put in the var property of the first object from the list
> that is not None. Somth like:
>
> foo = first_of([any, beny, riki,]).name
>
> Dont want to ugly if-cascade:
>
> foo = any.name if name is not None else beny.name if beny is not None \
> else riki.name if riki is not None

after some play with interpreter and Python logic i've got this:

objs = [None, 'dfgh', None,]
obj_l = [obj.__len__() for obj in objs if obj is not None][0]

Now the question is this is lazy or not? And how could i make it lazy?


-- 
Serge Matveenko
mailto:serge at matveenko.ru
http://serge.matveenko.ru/



More information about the Python-list mailing list