zoukankan      html  css  js  c++  java
  • python把函数作为参数

    python把函数作为参数
    import math
     
    def add(x, y, f):
        return f(x) + f(y)
     
    print add(25, 9,math.sqrt)
     
    python中map()函数的应用。将首字母大写,其他的小写
    def format_name(s):
        return s.capitalize()
        #return s[0].upper()+s[1:].lower()
    print map(format_name,['admin','LiSa','kILL'])
     
    python中reduce()函数的应用
    reduce和map函数相似,但是他只能传入两个参数与map的多个有区别,他还有迭代的功能呢!
    def muil(x,y):
        return x*y
    print reduce(muil,[1,2,3,4])
     
    filter()函数接收一个函数 f 和一个list,这个函数 f 的作用是对每个元素进行判断,返回 True或 False,
    filter()根据判断结果自动过滤掉不符合条件的元素,返回由符合条件元素组成的新list。
    def is_odd(x):
        return  x%2==1
    filter(is_odd,[1,3,2,9])
    利用filter除去None和空字符串
    def is_not_empty(s):
        return s and len(s.strip())>0
    filter(is_not_empty,['test',None,'    '])
     
     
    Python内置的 sorted()函数可对list进行排序:【但是仅仅实行的顺序排序,但是逆序却是另一个函数】我们今天写的就是另一种函数的功能。
    对于比较函数cmp_ignore_case(s1, s2),要忽略大小写比较,就是先把两个字符串都变成大写(或者都变成小写),再比较。
    参考代码:
    def cmp_ignore_case(s1, s2):
        u1 = s1.upper()
        u2 = s2.upper()
        if u1 < u2:
            return -1
        if u1 > u2:
            return 1
        return 0
    print sorted(['bob', 'about', 'Zoo', 'Credit'], cmp_ignore_case)
     
     
    我们在sorted这个高阶函数中传入自定义排序函数就可以实现忽略大小写排序。请用functools.partial把这个复杂调用变成一个简单的函数:functools.partial是隐形的创建一个新函数。
    要固定sorted()的cmp参数,需要传入一个排序函数作为cmp的默认值。
    参考代码:
    import functools
    sorted_ignore_case = functools.partial(sorted, cmp=lambda s1, s2: cmp(s1.upper(), s2.upper()))
    print sorted_ignore_case(['bob', 'about', 'Zoo', 'Credit'])
     
  • 相关阅读:
    android升级软件版本号,您安装后的新版本号,成功安装画面没有出现,或直接回到桌面
    Linux下安装Tomcat服务器和部署Web应用
    Linux下开启mysql数据库的远程访问权限
    【项目管理和构建】——Maven简介(一)
    用maven搭建多模块项目
    Maven之自定义pom类型的基础项目
    Maven之搭建本地私服(nexus)仓库
    Maven之自定义archetype生成项目骨架(一)
    Maven多模块项目搭建
    安装maven之后,cmd提示mvn不是内部命令的解决办法
  • 原文地址:https://www.cnblogs.com/topass123/p/12923323.html
Copyright © 2011-2022 走看看