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.

user1675111
quelle

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)
Cyrille
quelle
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'
mu 無
quelle