Eric wrote: > I have a string... > > str = "tyrtrbd =ffgtyuf == =tyryr =u=p ttttff" > > I want to replace the characters after each '=', what I ended up doing is > somthing like this... > > buf = list(str) > newchr = '#' > > count = 0 > for i in range(len(buf)): > if buf[count] == '=': > buf[count + 1] = newchr > count = count + 1 > else: > count = count + 1 > > newstr = ''.join(buf)
So you want to turn "tyrtrbd =ffgtyuf == =tyryr =u=p ttttff" into "tyrtrbd =#fgtyuf =# =#yryr =#=# ttttff"? I'd probably end up writing it like you have (except the else is redundant -- just end the test block and increment your counter in any case) > Is there a better, faster way of doing it? Using somthing like > str.index() dosn't work because... > > str = "hello world" You don't want to use str as a variable name -- it shadows the str() builtin: >>> x = 1 >>> str(x) 1 >>> str = "spam" >>> str(x) ------------------------------------------------------------ Traceback (most recent call last): File "<console>", line 1, in ? TypeError: 'str' object is not callable > for i in str: > print str.index(i) (snip) > Every 'e' in "hello world" has the same index value. Am i missing somthing? Because `"hello".index("l")` returns the first place "l" appears in "hello". It's always going to be 2. --Ryan -- http://mail.python.org/mailman/listinfo/python-list