find sublist inside list
f.guerrieri at gmail.com
Mon May 4 15:13:27 CEST 2009
On Mon, May 4, 2009 at 3:01 PM, John O'Hagan <mail at 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']
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
It is better to modify a new list instead. Eg you could append to a new
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the Python-list