> But let's change it to what I think you were thinking of: > > ### > def lstrip(string, chars): > scratchspace = list(string) ## get a mutable list of characters > for x in scratchspace: > if x in chars: > scratchspace[i] = '' > return ''.join(scratchspace) > ### > > This works fine. Hi Sandip, Doh. I hate people who make blanket assertions like that without even doing a minimal test. Even if it is myself. *grin* The code above is just broken, since there is no index 'i'. Let me try to fix it. ### def lstrip(string, chars): scratchspace = list(string) ## get a mutable list of characters for (i, x) in enumerate(scratchspace): if x in chars: scratchspace[i] = '' return ''.join(scratchspace) ### I'm not going to make the same mistake twice: we're going to test this sucker. *grin* ### >>> lstrip("hello world", "he") 'llo world' >>> lstrip("hello world", "eh") 'llo world' ### Everything looks peachy... except: ### >>> lstrip("hello world", "aeiou") 'hll wrld' ### Ah! That's not right either! Ok, one more time: ### def lstrip(string, chars): scratchspace = list(string) ## get a mutable list of characters for (i, x) in enumerate(scratchspace): if x in chars: scratchspace[i] = '' else: break return ''.join(scratchspace) ### Quick sanity check: ### >>> lstrip("hello world", "eh") 'llo world' >>> lstrip("hello world", "he") 'llo world' >>> lstrip("hello world", "aeiou") 'hello world' ### Finally. *grin* Anyway, I wanted to apologize; I should have tested my code. _______________________________________________ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor