string issue

Bill Mill bill.mill at gmail.com
Fri Feb 4 14:58:46 EST 2005


On Fri, 04 Feb 2005 14:43:30 -0500, rbt <rbt at athop1.ath.vt.edu> wrote:
> 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.

Once you know it, it's neat, and I use it sometimes. However, it's a
little too "magical" for my tastes; I'd rather be more explicit about
what's going on.

Peace
Bill Mill
bill.mill at gmail.com

> --
> http://mail.python.org/mailman/listinfo/python-list
>



More information about the Python-list mailing list