Löschen des letzten Zeichens in der Zeichenfolge (Python)
Habe ich eine Liste, gefüllt mit string-Objekten. Wenn das string-Objekt endet in einem W
möchte ich löschen/entfernen Sie die W
aus dem string. Auch, in der einzige Fall, der der Zeichenfolge entspricht UW
ich nicht wollen, entfernen Sie die W
.
Ich habe dies ausprobiert:
masterAbrevs = []
for subject in masterAbrevs:
if subject.endswith("W"):
subject = subject[:-1]
Nach dem drucken masterAbrevs
es scheint, dass mein code ist dabei absolut nichts. bitte helfen.
- Einrückung Problem .
- Strings sind unveränderlich, so müssen Sie ändern Sie die ursprünglichen array-Inhalt, nicht
subject
.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Das problem ist, dass Sie nie der änderung auf das element in der Liste; Sie machen die änderung der variable halten Sie das element aus der Liste zurückgegeben.
Versuchen Sie dies:
Müssen Sie Gebrauch machen von
enumerate()
hier.Dachte, Sie könnten zu schätzen wissen, ein mehr pythonic Antwort:
Könnten Sie in Erwägung ziehen einen anderen Ansatz mit einem generator oder einer Karte Ausdruck zu Kapseln, die den Betrieb auf den inneren string:
Mag es effizienter sein, um Sie manuell ändern Sie die Zeichenfolgen in-place, aber Python hat Optimierungen für den generator und eine Liste von Ausdrücken, so dass dieser Ansatz möglicherweise nicht viel langsamer.