[Python-Dev] str.strip() enhancement
Jonny Reichwald
kalinda at acc.umu.se
Sat Sep 3 22:36:07 CEST 2005
Hi,
I would like to suggest a small enhancement to str.strip().
By expanding its current form, where it only takes a char list, to
taking any list containing either char lists or string lists, it is
possible to remove entire words from the stripped string.
To clarify what I mean, here are some examples, first argument string
to be stripped, second argument a list of things to strip:
#A char list gives the same result as the standard strip
>>> my_strip("abcdeed", "de")
'abc'
#A list of strings instead
>>> my_strip("abcdeed", ("ed",))
'abcde'
#The char order in the strings to be stripped are of importance
>>> my_strip("abcdeed", ("ad", "eb"))
'abcdeed'
Functions used in the above examples:
def my_lstrip(str, list):
ret_str = str[max([k == True and len(v) for (k,v) in zip
([str.startswith(e) for e in list], list)]):]
if ret_str != str:
return my_lstrip(ret_str, list)
return str
def my_rstrip(str, list):
ret_str = str[:len(str)-max([k == True and len(v) for (k,v)
in zip([str.endswith(e) for e in list], list)])]
if ret_str != str and ret_str != False:
return my_rstrip(ret_str, list)
return str
def my_strip(str, list):
return my_lstrip(my_rstrip(str, list), list)
Would this be useful for anyone else besides me?
--
Jonny Reichwald
More information about the Python-Dev
mailing list