On Thu, Sep 16, 2010 at 12:27 PM, Michael Powe <mich...@trollope.org> wrote:

> Hello,
>
> I have two lists.
>
> alist = ['label', 'guid']
>
> blist = ['column0label', 'column1label', 'dimension0guid',
> 'description', 'columnid']
>
> I want to iterate over blist and extract the items that match my
> substrings in alist; alternatively, throw out the items that aren't in
> alist (but, I've had bad experiences removing items from lists "in
> place," so I tend toward the "copy" motif.)
>
> In real life, blist column entries could have embedded column numbers
> from 0 to 19.
>
> I can do this with excrutiatingly painful 'for' loops.  Looking for
> something more efficient and elegant.
>
> Thanks.
>
> mp
>
> --
> Michael Powe            mich...@trollope.org            Naugatuck CT USA
>
> "The secret to strong security: less reliance on secrets."
> -- Whitfield Diffie
>
> _______________________________________________
> Tutor maillist  -  Tutor@python.org
> To unsubscribe or change subscription options:
> http://mail.python.org/mailman/listinfo/tutor
>
>
Michel,

One solution is to use list comprehensions.

newlist = [x for x in blist if [a for a in alist if a in x]]

This works, although there may be more efficient ways to accomplish this

Vince
_______________________________________________
Tutor maillist  -  Tutor@python.org
To unsubscribe or change subscription options:
http://mail.python.org/mailman/listinfo/tutor

Reply via email to