Wie entferne ich das letzte Zeichen aus einer Zeichenfolge?
"abcdefghij" → "abcdefghi"
Benutzer1675111
Wie entferne ich das letzte Zeichen aus einer Zeichenfolge?
"abcdefghij" → "abcdefghi"
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'
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
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'
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 dielynx
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\]"
\n540:
print(a[:-1])
\n542:
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