Entfernen Sie das letzte Zeichen aus der Zeichenfolge


509

Angenommen, meine Zeichenfolge ist 10 Zeichen lang.

Wie entferne ich das letzte Zeichen?

Wenn meine Zeichenfolge lautet "abcdefghij"(ich möchte das 'j'Zeichen nicht ersetzen , da meine Zeichenfolge möglicherweise mehrere 'j'Zeichen enthält), möchte ich nur, dass das letzte Zeichen weg ist. Unabhängig davon, was es ist oder wie oft es auftritt, muss ich das letzte Zeichen aus meiner Zeichenfolge entfernen.


Antworten:


833

Einfach:

st =  "abcdefghij"
st = st[:-1]

Es gibt auch einen anderen Weg, der zeigt, wie es mit Schritten gemacht wird:

list1 = "abcdefghij"
list2 = list(list1)
print(list2)
list3 = list2[:-1]
print(list3)

Dies ist auch ein Weg mit Benutzereingaben:

list1 = input ("Enter :")
list2 = list(list1)
print(list2)
list3 = list2[:-1]
print(list3)

Damit es das letzte Wort in einer Liste wegnimmt:

list1 = input("Enter :")
list2 = list1.split()
print(list2)
list3 = list2[:-1]
print(list3)

3
Ja, st[-1]ist nur das letzte Zeichen vonst
Cyrille

5
Tatsächlich funktioniert dieses Slice auch dann noch, wenn stes leer ist. Nun, es wird immer noch eine leere Zeichenfolge zurückgegeben, aber Sie erhalten keine Fehlermeldung.
Kindall

1
Was ist, wenn Sie eine Liste von Wörtern haben und das letzte Zeichen jedes Wortes löschen möchten? [blau, rot, grün] => [blau, wieder, grün]?
Jellyse

5
[i[:-1] for i in ['blue','red','green']]
Cyrille

3
In den Beispielen ist zu erwähnen, dass Listen veränderbar sind und dass diese list.pop()Methode beim Umgang mit Listen der richtige Weg ist, da das letzte Element entfernt wird O(1), während beim [:-1]Schneiden eine Kopie einer Liste ohne das letzte Element in der O(n-1)Zeit erstellt wird plus O(n-1)Platz. Saiten sind unveränderlich - also nichts hinzuzufügen.
Dmitry

19

Was Sie versuchen, ist eine Erweiterung des String-Slicing in Python:

Angenommen, alle Zeichenfolgen haben die Länge 10, das letzte zu entfernende Zeichen:

>>> st[:9]
'abcdefghi'

So entfernen Sie die letzten NZeichen:

>>> N = 3
>>> st[:-N]
'abcdefg'
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.