Форматирование строки без использования регулярных выражений

Есть такой список строк:

['2nd July 1961',
 '6th August 1962',
 '31st July 1965']

Подскажите, пожалуйста, как убрать nd, th и st у чисел без использования регулярных выражений? Спасибо


Ответы (3 шт):

Автор решения: roddar92
def cut_date_suffix(input_str):
    i = 0
    while i < len(input_str) - 1:
        i += 1
        if input_str[i - 1].isdigit() and input_str[i:i+2] in ('nd', 'st', 'th'):
            break
    return input_str[:i] + input_str[i + 2:]
→ Ссылка
Автор решения: faceVB
def change_data(dates_list: list):
    formated_dates = []
    for item in dates_list:
        if not item[1].isdigit():
            item = item[0] + item[3:]
        else:
            item = item[:2] + item[4:]
        formated_dates.append(item)
    return formated_dates
→ Ссылка
Автор решения: S. Nick

как вариант:

_list = [
    '2nd July 1961',
    '6th August 1962',
    '31st July 1965'
]

def my_func(_list):
    new_list = []
    for _d in _list:
        for i in ('nd', 'st', 'th'):
            ind = _d.find(i)
            if ind == -1 or ind > 2:
                continue
            else:
                new_list.append(_d[:ind]+_d[ind+2:])
    return new_list

print(my_func(_list))

#['2 July 1961', '6 August 1962', '31 July 1965']
→ Ссылка