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'])
     
  • 相关阅读:
    USACO--2.1The Castle
    浅谈python字符串存储形式
    面向对象——一起来复习托付与事件!
    数据结构——算法之(032)(求两个串中的第一个最长子串)
    读《浪潮之巅》有感
    关于android 怎样安装 assets文件下的apk
    每日一小练——求质数
    怎样使破解网页的禁止复制黏贴
    Angularjs Nodejs Grunt 一个样例
    《TCP/IP具体解释卷2:实现》笔记--域和协议
  • 原文地址:https://www.cnblogs.com/topass123/p/12923323.html
Copyright © 2011-2022 走看看