zoukankan      html  css  js  c++  java
  • 使用文件进行优化 分类: python 小练习 divide into python python基础学习 2014-01-01 14:13 228人阅读 评论(0) 收藏

    #函数也是对象,将函数赋值给变量rule,使用rule接收参数,调用函数

    #coding:utf-8
    import re
    import string
    
    '''
    rule.en内容:
    [szx]$             $     es
    [^aeioudgkprt]h$   $     es
    [^aeiou]y$         y$    ies
    $                  $      $
    
    '''
    def buildRule((pattern,search,replace)):
        return lambda word:re.search(pattern,word) and re.sub(search,replace,word)
    
    def plural(noun,language='en'):
        lines = file('rules.%s' % language).readlines()
        patterns = map(string.split,lines)
        rules = map(buildRule,patterns)
        #函数也是对象,将函数赋值给变量rule,使用rule接收参数,调用函数
        for rule in rules:
            result = rule(noun)
            if rusult:
                return result
    
    
    if __name__ == '__main__':
        plural(noun)
    

    使用生成器:

    #coding:utf-8
    
    import re
    
    #rules()函数返回一个生成器对象
    def rules(language):
        for line in file(r'rules.%s'%language):
            pattern,search,replace=line.split()
            yield lambda word:re.search(pattern,word) and re.sub(search,replace,word)
    
    def plural(noun,language='en'):
        for applyRule in rules(language):
            #返回的applyRule匿名函数也是一个对象,该对象接收参数,并进行函数调用
            result = applyRule(noun)
            if result:
                return result
    if __name__ == '__main__':
        plural(noun)
    


    版权声明:本文为博主原创文章,未经博主允许不得转载。

  • 相关阅读:
    模板插件aTpl
    KFold交叉验证方式
    XGboost数据比赛实战
    机器学习特征选择方法
    机器学习项目实战
    python二维表格数据的导入与导出
    centos-linux系统如何进入root权限?
    centos7解决yum install mysql-server没有可用包?
    Keras实现简单分类神经网络
    MySQL学习入门总结(非常重要)
  • 原文地址:https://www.cnblogs.com/think1988/p/4627976.html
Copyright © 2011-2022 走看看