stem_rules = ('less', 'ship', 'ing', 'es', 'ly','s')
text = ('friends', 'very', 'friendly', 'keeping', 'friendship')
def func(str,end):
for x in end:
if str.rpartition(x)[2]=='':
return(str.rpartition(x)[0])
return(str)
result=[func(x,stem_rules) for x in text]
print(result)
Стоит заметить, что если слово оканчивается на ‘es’, оно же оканчивается и на ‘s’. Данный алгоритм будет искать до первого вхождения, т.е. если написать:
stem_rules = ('less', 'ship', 'ing', 's', 'ly','es')
то окончание ‘es’ никогда не будет найдено, т.к. первым найдется ‘s’
P.S. Никогда не понимал людей: вот зачем задавать вопрос в нескольких ветках? Пишешь ответ, а потом видишь, что он уже написан, да еще и 2 раза