In <[EMAIL PROTECTED]>, manstey wrote:

> I often have code like this:
> 
> data='asdfbasdf'
> find = (('a','f')('s','g'),('x','y'))
> for i in find:
>    if i[0] in data:
>        data = data.replace(i[0],i[1])
> 
> is there a faster way of implementing this? Also, does the if clause
> increase the speed?

It decreases it.  You search through `data` in the ``if`` clause.  If it's
`False` then you have searched the whole data and skip the replace.  If
it's `True` you searched into data until there's a match and the the
`replace()` starts again from the start and searches/replaces through the
whole data.

You can get rid of the indexes and make the code a bit clearer by the way:

for old, new in find:
    data = data.replace(old, new)

Ciao,
        Marc 'BlackJack' Rintsch
-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to