Sie versuchen, zu replace
mit '- '
, Ihr Zeichen, gefolgt von einem Leerzeichen Zeichen übereinstimmen. Es gibt keine Leerzeichen in den Strings, daher ersetzt das Ersetzen nichts, und dann schneidet man nur das letzte Zeichen aller Strings ab. Außerdem macht es keinen Sinn, ein Leerzeichen hinzuzufügen und es dann abzuschneiden, und Ihre aktuelle Methode würde Ihr Zeichen an anderer Stelle in Ihrer Zeichenfolge nicht berücksichtigen, zum Beispiel two-putt
.
Entfernen Sie einfach die Scheibe und verwenden Sie rstrip
, um das nachfolgende Zeichen zu entfernen, das Sie nicht möchten.
>>> l=['abc-','xyz','jkl-']
>>> l[:]= [x.rstrip('-') for x in orig]
['abc', 'xyz', 'jkl']
Sie können ein Listenverständnis verwenden, um eine neue Liste zu erstellen und dann den Inhalt Ihres Originals zu überschreiben. Beachten Sie, dass bei dieser Methode, wenn Ihre Strings mit mehreren Zeichen enden, die Sie nicht möchten, sie zum Beispiel alle entfernt werden. 'dogs---'
wird werden. Wenn Sie auch nachfolgende Leerzeichen behandeln möchten, können Sie ein Leerzeichen zusammen mit dem Zeichen, das nicht rstrip
sein soll, mit .rstrip('- ')
ergänzen.
's.rstrip („-“) 'Prehaps? Und wenn Sie ".append" es auflisten, ersetzen Sie nicht die Elemente in der ursprünglichen Liste, Sie müßten 'List [:] = [s.rstrip (" - ") für s in List]' zum Überschreiben der Inhalt der Liste. –
Warum ersetzen Sie mit einem Leerzeichen? –
Was sollte mit '['abc -']' geschehen: erwarten Sie '['abc']' oder '['abc -']'? I.e. ist das letzte Sonderzeichen, oder möchten Sie möglicherweise mehrere abschließende Zeichen entfernen? –