Удалить последний символ из строки

510

Допустим, моя строка длиной 10 символов.

Как мне удалить последний символ?

Если моя строка "abcdefghij"(я не хочу заменять 'j'символ, так как моя строка может содержать несколько 'j'символов), я хочу, чтобы только последний символ пропал. Независимо от того, что это такое и сколько раз это происходит, мне нужно удалить последний символ из моей строки.

user1675111
источник

Ответы:

835

Просто:

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

Есть также другой способ, который показывает, как это делается с помощью шагов:

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

Это также способ ввода данных пользователем:

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

Чтобы убрать последнее слово в списке:

list1 = input("Enter :")
list2 = list1.split()
print(list2)
list3 = list2[:-1]
print(list3)
Сирил
источник
3
Да, st[-1]это только последний персонажst
Сирил
5
На самом деле этот фрагмент будет работать, даже если stон пуст. Ну, он еще вернет пустую строку, но вы не получите ошибку.
любезно
1
Что если у вас есть список слов, и вы хотите удалить последний символ каждого слова? [синий, красный, зеленый] => [blu, re, gree]?
Jellyse
5
[i[:-1] for i in ['blue','red','green']]
Сирил
3
Рассматривая примеры, стоит упомянуть, что списки являются изменяемыми, и этот list.pop()метод является подходящим способом при работе со списками, поскольку он удаляет последний элемент на месте O(1), в то время как [:-1]срезание создает копию списка без последнего элемента во O(n-1)времени. плюс O(n-1)пробел. Строки неизменны - так что нечего добавить.
Дмитрий
19

То, что вы пытаетесь сделать, это расширение нарезки строк в Python:

Скажем, все строки имеют длину 10, последний символ должен быть удален:

>>> st[:9]
'abcdefghi'

Чтобы удалить последние Nсимволы:

>>> N = 3
>>> st[:-N]
'abcdefg'
му 無
источник