nasauber.de

Blog

QString::simplified() in Python

Just in case anybody searches for a Python pendant of QString::simplified(): This is surprisingly easy to do:

def simplify(string):
    return ' '.join(string.strip().split())

If one wants to subclass a Python string and add the above function, this can be done e. g. like so (subclassing a string is a bit tricky, as one needs to mess with the __new__ function instead of the "normal" __init__ one):

class NewString(str):
    def __new__(self, value):
        return str.__new__(self, value)
    def simplified(self):
        return ' '.join(self.strip().split())

This can then be used like so:

>>> someString = NewString('    a   lot of    tabs      and  spaces   ')
>>> someString
'\ta   lot of    tabs\tand  spaces   '
>>> someString.simplified()
'a lot of tabs and spaces'