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'])
     
  • 相关阅读:
    南京网络赛a(离线 树状数组)
    super_log(欧拉降幂)
    ac自动机模板 hdu2222
    Seek the Name, Seek the Fame POJ
    Power Strings(求循环次数最多的循环节 kmp)
    Period(循环节 nxt数组的应用)
    kmp 算法回顾(Number Sequence HDU
    最短路 2 (百度之星 初赛3 B)(floyd)
    path(优先队列,dijk拓展)
    (银联复赛)爱喝「肥宅快乐水」的班长
  • 原文地址:https://www.cnblogs.com/topass123/p/12923323.html
Copyright © 2011-2022 走看看