I'm trying to apply string.strip()
to all the leafs that are strings in a multidimensional collection, but my Python is a bit rusty (to say the least). The following is the best I've come up with, but I suspect there's a much better way to do it.
def strip_spaces( item ):
if hasattr( item, "__iter__" ):
if isinstance( item, list ):
return [strip_spaces( value ) for value in item]
elif isinstance( item, dict ):
return dict([(value,strip_spaces(value)) for value in item])
elif isinstance( item, tuple ):
return tuple([ strip_spaces( value ) for value in item ])
elif isinstance( item, str ) or isinstance( item, unicode ):
item = item.strip()
return item