【Python學習日記】函數列表

來源:互聯網
上載者:User

標籤:

import redef match_sxz(noun):    return re.search(‘[sxz]$‘,noun)def apply_sxz(noun):    return re.sub(‘$‘,‘es‘,noun)def match_h(noun):    return re.search(‘[^aeioudgkprt]h‘,noun)def apply_h(noun):    return re.sub(‘$‘,‘es‘,noun)def match_y(noun):    return re.search(‘[^aeiou]y$‘,noun)def apply_y(noun):    return re.sub(‘y$‘,‘ies‘,noun)def match_default(noun):    return Truedef apply_default(noun):    return re.sub(‘$‘,‘s‘,noun)rules = ((match_sxz, apply_sxz),         (match_h, apply_h),         (match_y, apply_y),         (match_default, apply_default)         )def plural(noun):    for match_rule, apply_rule in rules:        if(match_rule(noun)):            return apply_rule(noun)print(plural(‘body‘));

改成動態建立函數的方式

import redef build_match_apply_function(pattern, search, replace):    def match_rule(word):        return re.search(pattern, word)    def apply_rule(word):        return re.sub(search, replace, word)    return (match_rule, apply_rule)patterns =          (             (‘[sxz]$‘,‘$‘,‘es‘),             (‘[^aeioudgkprt]h$‘,‘$‘,‘es‘),             (‘(qu|[^aeiou]y$)‘,‘y$‘,‘ies‘),             (‘$‘,‘$‘,‘s‘),             )rules = [build_match_apply_function(pattern, search, replace)         for (pattern, search, replace) in patterns]def plural(noun):    for match_rule, apply_rule in rules:        if(match_rule(noun)):            return apply_rule(noun)print(plural(‘body‘));

  

【Python學習日記】函數列表

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.