Re: count string replace occurances
Xah Lee <[EMAIL PROTECTED]> wrote: > if i have > mytext.replace(a,b) > how to find out many many occurances has been replaced? If 'a' and 'b' are different length, - Count the string length, before and after. The difference should be multiple of difference between length of 'a' and 'b'. If they are same length, - Split 'mytext', and count items. -- William Park <[EMAIL PROTECTED]>, Toronto, Canada ThinFlash: Linux thin-client on USB key (flash) drive http://home.eol.ca/~parkw/thinflash.html -- http://mail.python.org/mailman/listinfo/python-list
Re: count string replace occurances
"Jeff Epler" wrote: > On Sun, Jun 12, 2005 at 04:55:38PM -0700, Xah Lee wrote: > > if i have > > mytext.replace(a,b) > > how to find out many many occurances has been replaced? > > The count isn't returned by the replace method. You'll have to count > and then replace. > > def count_replace(a, b, c): > count = a.count(b) > return count, s.replace(b, c) > > >>> count_replace("a car and a carriage", "car", "bat") > (2, 'a bat and a batriage') I thought naively that scanning a long string twice would be almost twice as slow compared to when counting was done along with replacing. Although it can done with a single scan, it is almost 9-10 times slower, mainly because of the function call overhead; the code is also longer: import re def count_replace_slow(aString, old, new): count = [0] def counter(match): count[0] += 1 return new replaced = re.sub(old,counter,aString) return count[0], replaced A good example of trying to be smart and failing :) George -- http://mail.python.org/mailman/listinfo/python-list
Re: count string replace occurances
On Sun, Jun 12, 2005 at 04:55:38PM -0700, Xah Lee wrote: > if i have > mytext.replace(a,b) > how to find out many many occurances has been replaced? The count isn't returned by the replace method. You'll have to count and then replace. def count_replace(a, b, c): count = a.count(b) return count, s.replace(b, c) >>> count_replace("a car and a carriage", "car", "bat") (2, 'a bat and a batriage') pgpAvDTGPd6LT.pgp Description: PGP signature -- http://mail.python.org/mailman/listinfo/python-list