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 -- http://mail.python.org/mailman/listinfo/python-list