Видаліть остаточний символ із рядка


508

Скажімо, мій рядок має 10 символів.

Як видалити останній символ?

Якщо мій рядок є "abcdefghij"(я не хочу замінювати 'j'символ, оскільки мій рядок може містити кілька 'j'символів), я хочу лише останнього символу. Незалежно від того, що це таке або скільки разів воно трапляється, мені потрібно видалити останній символ зі своєї рядок.


Відповіді:


832

Простий:

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він порожній. Добре, він все одно поверне порожню рядок, але ви не отримаєте помилку.
kindall

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'
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.