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

Girish Sahani girish at cse.iitb.ac.in
Mon Jun 12 11:34:59 CEST 2006


Thank you Mark....this works too...
Btw going slightly off-topic, when i try to run a code like below with
around 50 elements (pairs) in l4,python just hangs. Any ideas why this is
happening...the data is not that large :((
>
> Girish Sahani wrote:
>> 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
>>
>> The output given is:
>> l4 is [[4, 7], [4, 12], [9, 7], [9, 12], [11, 7]]
>
> It is better to iterate over a copy, e.g. like this:
>
> 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
>
> --
> http://mail.python.org/mailman/listinfo/python-list
>




More information about the Python-list mailing list