Matthias Gallé wrote:
bearophileh...@lycos.com wrote:
John O'Hagan:
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']

Oh well, I have done a mistake, it seems.
Another solution then:

'acaccgac'.replace("ac", chr(6))
'\x06\x06cg\x06'

Bye,
bearophile

Thanks bearophile and John for your quick answers.
Unfortunately, the int that can replace a sublist can be > 255, but John's answer looks simple and good enough for me. I will use it as a starting point.

John's solution changes the length of the list over which it's
iterating.

I'd suggest something more like:

    li = ['a', 'c', 'a', 'c', 'c', 'g', 'a', 'c']
    pos = 0
    try:
        while True:
            pos = li.index('a', pos)
            if li[pos : pos + 2] == ['a', 'c']:
                li[pos : pos + 2] = [6]
            pos += 1
    except ValueError:
        pass
--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to