modifying a list while iterating through

George Sakkis george.sakkis at gmail.com
Sun Feb 25 21:13:45 EST 2007


On Feb 25, 8:12 pm, dustin.g... at gmail.com wrote:
> consider the following working loop where Packet is a subclass of
> list, with Packet.insert(index, iterable) inserting each item in
> iterable into Packet at consecutive indexes starting at index.
>
>     i=0
>     while(i<len(packet)-4):
>         if packet[i:i+5]==Packet("01110"):
>             packet.insert(i, "01111")
>             i+=10 #skip the 5 bits inserted, and skip the 5 bits just
> checked bc overlap should not trigger insertion
>         else: i+=1
>
> is there a way to do this more elegantly?  seems like a big kludge.

Unless I missed something, this is a simple string replacement:

''.join(packet).replace('01110', '0111001111')


George




More information about the Python-list mailing list