On Mon, May 4, 2009 at 3:01 PM, John O'Hagan <m...@johnohagan.com> wrote:
> On Mon, 4 May 2009, Matthias Gallé wrote: > > Hi. > > > > My problem is to replace all occurrences of a sublist with a new element. > > > > Example: > > Given ['a','c','a','c','c','g','a','c'] I want to replace all > > occurrences of ['a','c'] by 6 (result [6,6,'c','g',6]). > > > > li=['a', 'c', 'a', 'c', 'c', 'g', 'a', 'c'] > for i in range(len(li)): > if li[i:i + 2] == ['a', 'c']: > li[i:i + 2] = ['6'] > > HTH, > > John > Beware that you are mutating the list you are iterating over. That could lead to some strange bugs (for instance if you replaced the deleted items with a longer sequence, the range(len(li)) would still go up to the original lenght). It is better to modify a new list instead. Eg you could append to a new list. Francesco
-- http://mail.python.org/mailman/listinfo/python-list