Как удалить один конкретный символ в конце строки
У меня есть список
lst = ["NAME___", "SURNAME_", "TEST_ACC", "ID__"]
Как можно удалить один конкретный символ с конца (_). Должно получиться так
lst = ["NAME__", "SURNAME", "TEST_ACC", "ID_"]
Думал что можно так, но так удаляет все символы
lst = [t.rstrip("_") for t in lst]
Ответы (4 шт):
Автор решения: guyfcc
→ Ссылка
lst = ["NAME___", "SURNAME_", "TEST_ACC", "ID__"]
lst2 = []
for x in lst: lst2.append(x[:-1] if x[-1:] == "_" else x)
print(lst2)
Автор решения: kirr_slav111
→ Ссылка
Разобрался сделал пока так
lst = ["NAME___", "SURNAME_", "TEST_ACC", "ID__"]
lst = [t[:-1] if t[-1] == "_" else t for t in lst]
print(lst)
Автор решения: Namerek
→ Ссылка
import re
lst = ["NAME___", "SURNAME_", "TEST_ACC", "ID__"]
def cut_last(item: str):
return re.sub(r'_$', '', item)
print(
list(
map(
cut_last,
lst
)
)
)
Output
# ['NAME__', 'SURNAME', 'TEST_ACC', 'ID_']
Автор решения: nomnoms12
→ Ссылка
Начиная с версии 3.9 Вы можете воспользоваться методом removesuffix.
Пример:
lst = ['NAME___', 'SURNAME_', 'TEST_ACC', 'ID__']
lst = [s.removesuffix('_') for s in lst]
print(lst)
stdout:
['NAME__', 'SURNAME', 'TEST_ACC', 'ID_']