Laatste teken uit tekenreeks verwijderen

Stel dat mijn tekenreeks 10 tekens lang is.

Hoe verwijder ik het laatste teken?

Als mijn tekenreeks "abcdefghij"is (ik wil het teken 'j'niet vervangen, aangezien mijn tekenreeks meerdere 'j'tekens) Ik wil alleen het laatste teken weg. Ongeacht wat het is of hoe vaak het voorkomt, ik moet het laatste teken uit mijn tekenreeks verwijderen.


Antwoord 1, autoriteit 100%

Eenvoudig:

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

Probeer het volgende codefragment om beter te begrijpen hoe het werkt door de tekenreeks als een lijst te casten:

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

In het geval dat u de tekenreeks van de gebruiker wilt accepteren:

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

Om het het laatste woord van een zin te laten weghalen (met woorden gescheiden door spatie zoals spatie):

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

Antwoord 2, autoriteit 4%

Wat u probeert te doen is een uitbreiding van string slicingin Python:

Stel dat alle strings een lengte hebben van 10, laatste teken dat moet worden verwijderd:

>>> st[:9]
'abcdefghi'

Om de laatste Ntekens te verwijderen:

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

Antwoord 3

De eenvoudigste oplossing voor jou is het gebruik van string slicing.

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

Python 3:

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

Antwoord 4

Dit zou echt moeten werken:

string = string[0:len(string) - 2]

Other episodes