string issue

rbt rbt at athop1.ath.vt.edu
Fri Feb 4 14:43:30 EST 2005


Steve Holden wrote:
> rbt wrote:
> 
>> Either I'm crazy and I'm missing the obvious here or there is 
>> something wrong with this code. Element 5 of this list says it doesn't 
>> contain the string 255, when that's *ALL* it contains... why would it 
>> think that???
>>
>> import time
>>
>> ips = ['255.255.255.255', '128.173.120.79', '198.82.247.98', 
>> '127.0.0.1', '255.0.0.0', '255', '128.173.255.34']
>>
>> for ip in ips:
>>     if '255' in ip:
>>         try:
>>             print "Removing", ip
>>             ips.remove(ip)
>>         except Exception, e:
>>             print e
>>
>> print ips
>> time.sleep(5)
>>
>> Someone tell me I'm going crazy ;)
> 
> 
> You are modifying the list as you iterate over it. Instead, iterate over 
> a copy by using:
> 
> for ip in ips[:]:
>   ...
> 
> regards
>  Steve

Very neat. That's a trick that everyone should know about. I vote it 
goes in Dr. Dobbs newsletter.



More information about the Python-list mailing list