Entfernen Sie das letzte Zeichen aus der Zeichenfolge

Lesezeit: 4 Minuten

Benutzer-Avatar
Benutzer1675111

Wie entferne ich das letzte Zeichen aus einer Zeichenfolge?

"abcdefghij"  →  "abcdefghi"

  • Ich glaube nicht, dass es sich um ein Duplikat handelt. In der anderen Frage hat das OP im Allgemeinen nach einer Teilzeichenfolge gefragt. Dieses OP fragt nach a sehr bestimmte Teilzeichenfolge, die oft sehr nützlich ist. Ich glaube, dass es nützlich ist, dies hier zu haben, damit Leute suchen UND antworten können. Es wäre schön für jemanden, der 1) ein nachgestelltes os-Trennzeichen aus einer Reihe von Pfaden entfernen möchte oder 2) um ein letztes Komma in jeder Zeile einer CSV-Datei zu entfernen, die eine leere letzte Spalte hat oder 3) um einen nachgestellten Punkt/Punkt (alle Satzzeichen) vom Ende einer Reihe von Satzzeichenfolgen zu entfernen … [more examples, no chars]

    – bballdave025

    26. August 2020 um 20:31 Uhr

  • Besonders wenn man neu in der Programmierung ist, fordert man einen auf, das herauszufinden my_str[:-1] Aus den Antworten im Dup-Link scheint ein kleiner Sprung zu werden. Da die verlinkte Seite JETZT erscheint (siehe die lynx Befehl), es ist schwer zu finden. $ lynx -dump https://web.archive.org/web/20200826203245/https://stackoverflow.com/questions/663171/how-do-i-get-a-substring-of-a-string-in-python | grep -n "\[[:][-]1\]" \n 540: print(a[:-1]) \n 542: In the above code, [:-1] declares to print from the starting till the \n 548: ` Note: Here a [:-1] is also the same as a [0:-1] and a [0:len(a)-1]

    – bballdave025

    26. August 2020 um 20:50 Uhr


  • Ich glaube, dies ist ein Duplikat von How do I get a substring of a string in Python?. Die akzeptierte Antwort zeigt die Verwendung [:-2] zum Entfernen der letzten beiden Zeichen einer Zeichenfolge. Ich glaube, es sollte für jeden Programmierer nicht allzu schwer sein, darauf zu schließen [:-1] kann dann verwendet werden, um nur das letzte Zeichen zu entfernen.

    – mkrieger1

    9. August 2021 um 22:25 Uhr


Benutzer-Avatar
Kyrill

Einfach:

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

Probieren Sie das folgende Code-Snippet aus, um besser zu verstehen, wie es funktioniert, indem Sie die Zeichenfolge als Liste umwandeln:

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

Falls Sie die Zeichenfolge vom Benutzer akzeptieren möchten:

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

Um das letzte Wort aus einem Satz wegzunehmen (mit Wörtern, die durch Leerzeichen wie Leerzeichen getrennt sind):

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

  • Ja, st[-1] ist nur das letzte Zeichen von st

    – Kyrill

    18. März 2013 um 13:45 Uhr

  • Eigentlich wird dieser Slice auch dann noch funktionieren st ist leer. Nun, es wird immer noch eine leere Zeichenfolge zurückgegeben, aber Sie erhalten keinen Fehler.

    – irgendwie

    18. März 2013 um 13:58 Uhr

  • Was ist, wenn Sie eine Liste mit Wörtern haben und das letzte Zeichen jedes Wortes löschen möchten? [blue, red, green] => [blu,re,gree] ?

    – Gelee

    9. April 2018 um 10:19 Uhr

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

    – Kyrill

    9. April 2018 um 13:34 Uhr

  • Wenn man sich die Beispiele ansieht, ist es erwähnenswert, dass Listen veränderlich sind und so list.pop() -Methode ist der richtige Weg, wenn Sie mit Listen arbeiten, da sie das letzte Element an Ort und Stelle entfernt O(1)während [:-1] Beim Slicing wird eine Kopie einer Liste ohne das letzte Element erstellt O(n-1) Zeit zuzüglich O(n-1) Platz. Strings sind unveränderlich – also nichts hinzuzufügen.

    – Dmitri

    19. September 2019 um 5:26 Uhr

Was Sie versuchen, ist eine Erweiterung von Saiten schneiden in Python:

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

>>> st[:9]
'abcdefghi'

Zuletzt entfernen N Figuren:

>>> N = 3
>>> st[:-N]
'abcdefg'

Benutzer-Avatar
Nico

Die einfachste Lösung für Sie ist die Verwendung Saiten schneiden.

Python 2/3:

source[0: -1]  # gets all string but not last char

Python 2:

source="ABC"    
result = "{}{}".format({source[0: -1], 'D')
print(result)  # ABD

Python3:

source="ABC"    
result = f"{source[0: -1]}D"
print(result)  # ABD

Es gibt also eine aufgerufene Funktion rstrip() für sowas. Sie geben den Wert ein, den Sie löschen möchten, in diesem Fall das letzte Element, also eine Zeichenfolge[-1] :

string = "AbCdEf" 
newString = string.rstrip(string[-1])
print(newString)

Wenn Sie seinen Code ausführen, sollten Sie sehen, dass der ‘f’-Wert gelöscht wird.

OUTPUT: AbCdE

Benutzer-Avatar
Mateen Ulhaq

Mittels Slicing kann man die spezifizieren start und stop Indizes, um einen Teil einer Zeichenfolge zu extrahieren s. Das Format ist s[start:stop]. Jedoch, start = 0 standardmäßig. Wir müssen also nur spezifizieren stop.


Verwenden stop = 3:

>>> s = "abcd"
>>> s[:3]
'abc'

Verwenden stop = -1 zu entfernen 1 Zeichen vom Ende (BESTE METHODE):

>>> s = "abcd"
>>> s[:-1]
'abc'

Verwenden stop = len(s) - 1:

>>> s = "abcd"
>>> s[:len(s) - 1]
'abc'

1133310cookie-checkEntfernen Sie das letzte Zeichen aus der Zeichenfolge

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy