Как удалить один конкретный символ в конце строки

У меня есть список

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_']
→ Ссылка