Wyrmskull wrote: > Peter Otten wrote:
>> def replace_many(s, pairs): >> if len(pairs): >> a, b = pairs[0] >> rest = pairs[1:] >> return b.join(replace_many(t, rest) for t in s.split(a)) >> else: >> return s > Proves wrong, this way x -> y -> z. > You call replace_many again on the central part of the split > Specifics indicate that x -> y in the end. Sorry, I don't understand what you want to say with the above. > Try with this: > > def mySubst(reps,string): > if not(len(reps)): > return string > current = reps[0][0] > a,b,c = string.partition(current) > if b: > return mySubst(reps,a) + reps[0][1] + mySubst (reps,c) > else: > return mySubst(reps[1:],string) > > print mySubst( ( ('foo','bar'), ('bar','qux'), ('qux','foo') ), > 'foobarquxfoo') > > ------- > Wyrmskull <lordkran...@gmail.com> I don't see at first glance where the results of replace_many() and mySubst() differ. Perhaps you could give an example? Peter PS: Please keep the conversation on-list -- http://mail.python.org/mailman/listinfo/python-list