在python中查找单词是否以某个后缀结尾

在python中查找单词是否以某个后缀结尾,python,python-3.x,Python,Python 3.x,我试图让它在不使用if语句的情况下工作,在python中,它大部分时间都在工作,直到它到达一个类似于“庆祝”的单词。我不明白是什么导致了这一切 common_suffix = ['ly', 'ion', 'ed', 'able'] def ends_in_common_suffix(word): for suffix in common_suffix: last_word = word[-len(suffix)] return last_word <

我试图让它在不使用if语句的情况下工作,在python中,它大部分时间都在工作,直到它到达一个类似于“庆祝”的单词。我不明白是什么导致了这一切

common_suffix = ['ly', 'ion', 'ed', 'able']
def ends_in_common_suffix(word):
    for suffix in common_suffix:
        last_word = word[-len(suffix)]
        return last_word < suffix
common_后缀=['ly','ion','ed','able']
def以_公共_后缀(单词)结尾:
对于公共_后缀中的后缀:
最后一个单词=单词[-len(后缀)]
返回最后一个单词<后缀

< /代码>它怎么能考虑第二个后缀?抱歉,如果这听起来像一个愚蠢的问题,但是为什么它不考虑第二个后缀?你的<代码>返回<代码>在循环中。考虑<代码>任何(Word。(后缀)为后缀),如果你只需要知道一个单词是否结束,或者移动返回循环(不确定这是否是唯一的问题)。Word [-LeN(后缀)]将在长度为<代码>索引< /代码>的情况下抓取字母,例如“Ly”是LeN 2,因此,如果我的单词是“后缀”,那么行
last\u word=word[-len(后缀)]
last\u word
设置为“i”(倒数第二个字母)。要实现这一点,您可以执行类似于
def ends\u in\u common\u suffix(word):matches=[word.endswith(suffix)for suffix in common\u suffix]返回任意(matches)