manstey schreef: > Roel Schroeven wrote: >> manstey schreef: >>> 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? >> I think this is best done with translate() and string.maketrans() (see >> http://docs.python.org/lib/node110.html#l2h-835 and >> http://docs.python.org/lib/string-methods.html#l2h-208). An example:
> But what about substitutions like: > 'ab' > 'cd', 'ced' > 'de', etc > > what is the fastest way then? Ah, in that case I don't think you can do much better than you already did. But I think the if clause doesn't increase the speed; it might even decrease it. If you want to know for sure, use timeit to see what's fastest. -- If I have been able to see further, it was only because I stood on the shoulders of giants. -- Isaac Newton Roel Schroeven -- http://mail.python.org/mailman/listinfo/python-list