find sublist inside list

Terry Reedy tjreedy at udel.edu
Mon May 4 18:02:59 EDT 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]).
> 
> If I do this with string ('acaccgac') I have the advantage of all the 
> 'find' functions, but perfomance is bad and some extra care must be 
> taken if one element consist of more then one character (case of 11 for 
> example)
> 
> So I really would like to work with lists straightforward, but I could 
> not found anything to search a sublist inside a list.
> Any propositions for a simple solution?

For a mutable homogenous array, consider the array module.
Any algorithm that applies to a sequence of chars can be adjusted to 
other sequences.  For the above case, remember than you can easily 
filter None out of a sequence.  IE, replace 'a','c' with 6, None and 
then filter when done.




More information about the Python-list mailing list