Le Monday 16 June 2008 18:58:06 Ethan Furman, vous avez écrit : > The strip() method of strings works from both ends towards the middle. > Is there a simple, built-in way to remove several characters from a > string no matter their location? (besides .replace() ;) > > For example: > .strip --> 'www.example.com'.strip('cmowz.') > 'example' > .??? --> --- 'www.example.com'.strip('cmowz.') > 'exaple'
As Larry Bates said the python way is to use str.join, but I'd do it with a genexp for memory saving, and a set to get O(1) test of presence. to_remove = set('chars') ''.join(e for in string_ if e not in to_remove) Note that this one will hardly be defeated by other idioms in python (even regexp). Using a genexp is free and a good practice, using a set, as it introduce one more step, can be considered as premature optimisation and the one liner : ''.join(e for in string_ if e not in 'chars') may be preferred. -- _____________ Maric Michaud -- http://mail.python.org/mailman/listinfo/python-list