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)]
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
  • 相关阅读:
    How to produce the first draft of research paper?
    ETL
    BDA chapter 10
    <转>Java转iOS-第一个项目总结(2):遇到问题和解决方案
    <转>从Java转iOS第一个项目总结
    (转)总结iOS 8和Xcode 6的各种坑
    iOS开发之Xcode6之后不再自动创建Pch预编译文件,该如何解决这个问题?
    iOS开发:Objective-C中通知与协议的区别?
    PT和PX是什么鬼?
    使用cocoaPods经常出现的问题以及解决方案
  • 原文地址:https://www.cnblogs.com/lzcys8868/p/7772769.html
Copyright © 2011-2022 走看看