Function to remove elements from a list not working (corrected)

Maric Michaud maric at aristote.info
Mon Jun 12 04:41:01 EDT 2006


Le Lundi 12 Juin 2006 10:25, Girish Sahani a écrit :
> Hi,
>  I am trying to modify a list of pairs (l4) by removing those
> pairs which are not present in a third list called pairList.
>  The following is a simplified part of the routine i have written. However
> it does not give the correct output. Please help!
>  Its possible i have made a trivial mistke since i am a newbie.
>
> def getl5():
>     l5 = []
>     pairList = [[1,2],[3,4],[3,5],[3,6],[9,7],[8,9],[8,7],[7,9],[11,10]]
>     l4 =
> [[4,2],[4,7],[4,10],[4,12],[9,2],[9,7],[9,10],[9,12],[11,2],[11,7]] for
> pair in l4:
>         if pair not in pairList:
>             l4.remove(pair)
>     print "l4 is",l4
>

You are trying to modify a list while iterating over it, never do that !

> The output given is:
> l4 is [[4, 7], [4, 12], [9, 7], [9, 12], [11, 7]]

Is this work in your case ?

def getl5():
    pairList = [[1,2],[3,4],[3,5],[3,6],[9,7],[8,9],[8,7],[7,9],[11,10]]
    l4 = [[4,2],[4,7],[4,10],[4,12],[9,2],[9,7],[9,10],[9,12],[11,2],[11,7]]
    l4 = [ e for e in l4 if e in pairList ]
    print "l5 is", l4


-- 
_____________

Maric Michaud
_____________

Aristote - www.aristote.info
3 place des tapis
69004 Lyon
Tel: +33 426 880 097



More information about the Python-list mailing list