Die akzeptierte Antwort ist großartig, aber wenn Sie eine etwas allgemeinere Lösung möchten, die Ihnen erlaubt, die explizite Menge von Zeichen anzugeben, die Sie noch entfernen möchten, fügen Sie dem Filter eine Lambda-Funktion hinzu, etwa so.
>>> y = "\n\n\r\n Scott Hibb's Amazing Whisky Grilled Baby Back Ribs\r\n \n\n\n\n"
>>> ' '.join(filter(lambda x: x not in ['\n', '\r'], y).strip().split())
"Scott Hibb's Amazing Whisky Grilled Baby Back Ribs"
Bitte beachten Sie, dass für Ihr Beispiel explizit die \n
und \r
in der Lambda-Angabe Overkill wird, weil Streifen() behandelt \n
und \r
als Leerzeichen aber wenn Sie andere Zeichen entfernen wollte, dann ist dies ein sinnvoller Ansatz. Zum Beispiel würden Sie so zusätzliche Leerzeichen entfernen, die \n
und \r
entfernen und alle Standardvokale entfernen (a, e, i, o, u).
>>> y = "\n\n\r\n Scott Hibb's Amazing Whisky Grilled Baby Back Ribs\r\n \n\n\n\n"
>>> ' '.join(filter(lambda x: x.lower() not in ['a', 'e', 'i', 'o', 'u', '\r'], y).strip().split())
"Sctt Hbb's mzng Whsky Grlld Bby Bck Rbs"