zoukankan      html  css  js  c++  java
  • python 基础 4.3 高阶函数下和匿名函数

    一 .匿名函数
    顾名思议就是没有名字的函数,那为什么要设立匿名函数,他有什么作用呢?lambda 函数就是一种快速定义单行的最小函数,可以用在任何需要函数的地方。
     
    常规版:
    def fun(x,y)
    return x*y
    lambda
     
    示例:
    /usr/bin/python
    #coding=utf-8
    #@Time :2017/11/2 15:14
    #@Auther :liuzhenchuan
    #@File :高阶函数下和匿名函数.py
     
    #匿名函数,就是没有名字的函数
    def sum(x,y):
    return x+y
    # print sum(4,5)
     
    m = lambda x,y:x+y
    print m(4,5)
     
    >>> 9
     
     
    sorted() 函数
    sorted(iterable,cmp=None,key=None,reverse=False)--->new sorted list
    对字典进行排序,按照value进行排序
    mm =dict(a=1,b=10,c=3,d=9)
     
    作用:返回一个经过排序的列表
    第一个参数是一个iterable(可迭代的),返回值是一个对iterable中元素进行排序后的列表
    可选的参数有三个,cmp,key,reverse
    1》cmp 指定一个定制的比较函数,这个函数接收两个参数(iterable的元素),如果第一个参数小于第二个参数,返回一个负数;如果第一个参数等于第二个参数,返回零;如果第一个参数大于第二个参数,返回一个正数,默认值为None。
    2》key 指定一个接收一个参数的函数,这个函数用于从每个元素中提取一个用于比较的关键字,默认值为None
    3》reverse 是一个布尔值,如果设置为True,列表元素将被倒序排列。
     
    示例:
    #匿名函数,就是没有名字的函数
    def sum(x,y):
    return x+y
    # print sum(4,5)
     
    m = lambda x,y:x+y
    print m(4,5)
     
    print '####打印字典##'
    mm=dict(a=1,c=10,b=8,d=5)
    print mm
     
    print '#######打印keys########'
    for i in mm:
    print i
     
    print '########打印keys和values##'
    for key,value in mm.iteritems():
    print (key,value)
     
    print '#######对keys和values排序############'
    #keys 定义匿名函数lambda, d为key 通过d[1]取到value
    test=sorted(mm.iteritems(),key=lambda d: d[1])
    print test
     
    >>>
    ####打印字典##
    {'a': 1, 'c': 10, 'b': 8, 'd': 5}
    #######打印keys########
    a
    c
    b
    d
    ########打印keys和values##
    ('a', 1)
    ('c', 10)
    ('b', 8)
    ('d', 5)
    #######对keys和values排序############
    [('a', 1), ('d', 5), ('b', 8), ('c', 10)]
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
  • 相关阅读:
    JUnitBeforeClass、AfterClass、Before、After示例
    4 jquery中dom操作和事件的实例学习访yahoo邮箱登录框的提示效果
    2 jquery 强大的选择器
    3 jquery对象和dom对象的相互转换
    开博第一篇
    转载notepad++ zendcoding使用
    轻描淡写的日子
    测试
    BPMN中的任务(task)介绍
    Google App Engine正式对Java进行支持
  • 原文地址:https://www.cnblogs.com/lzcys8868/p/7772769.html
Copyright © 2011-2022 走看看