Форум сайта python.su
Есть две строки или два списка.
stem_rules = ('less', ‘ship’, ‘ing’, ‘es’, ‘ly’,'s')
text = ('friends', ‘very’, ‘friendly’, ‘keeping’, ‘friendship’)
Нужно основываясь на stem_rules удалить окончания из text.
получить: ('friend', ‘very’, ‘friend’, ‘keep’, ‘friend’)
Как это сделать при помощи функций map(),filter() и т.д., и функции lambda?
Отредактировано lioha1984 (Дек. 12, 2014 22:00:06)
Офлайн
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)
stem_rules = ('less', 'ship', 'ing', 's', 'ly','es')
Отредактировано Paranoia_Agent (Дек. 13, 2014 02:23:06)
Офлайн
str служебное имя, долой привычку так переменные именовать!
Офлайн