string issue

Steve Holden steve at holdenweb.com
Fri Feb 4 14:27:44 EST 2005


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
-- 
Meet the Python developers and your c.l.py favorites March 23-25
Come to PyCon DC 2005                      http://www.pycon.org/
Steve Holden                           http://www.holdenweb.com/



More information about the Python-list mailing list