(11) lambda表达式用法

* lambda 简述
    lambda只是一个表达式,函数体比def简单很多
    lambda的主体是一个表达式,而不是一个代码块。仅仅能在lambda表达式中封装有限的逻辑进去。
    lambda表达式是起到一个函数速写的作用。允许在代码内嵌入一个函数的定义
    lambda可以有多个参数列表
    lambda表达式也叫匿名函数
   
* 简单例子
   result = lambda x:x+3
   求一个数加3的结果
  
   fun = lambda x,y:x*y
   求两个数相乘
  
   g = lambda x : x**2
   print g(4)
   数的平方
  
* 和其它函数组合
    map() 将序列中的元素通过处理函数处理后返回一个新的列表
        li = [1, 2, 3, 4, 5]
        # 序列中的每个元素加1
        map(lambda x: x+1, li) # [2,3,4,5,6]
       
    filter() 将序列中的元素通过函数过滤后返回一个新的列表
        # 返回序列中的偶数
        filter(lambda x: x % 2 == 0, li) # [2, 4]
       
    reduce() 将序列中的元素通过一个二元函数处理返回一个结果
        # 返回所有元素相乘的结果
        reduce(lambda x, y: x * y, li) # 1*2*3*4*5 = 120 
       
    sorted() 结合lambda对列表进行排序
    sorted用法:
        sorted(iterable, cmp=None, key=None, reverse=False)--> new sorted list terable:是可迭代类型;
        cmp:用于比较的函数,比较什么由key决定,有默认值,迭代集合中的一项;
        key:用列表元素的某个属性和函数进行作为关键字,有默认值,迭代集合中的一项;
        reverse:排序规则. reverse = True 或者 reverse = False,有默认值。
        * 返回值:是一个经过排序的可迭代类型,与iterable一样。
    sorted(data, key=lambda d: d[‘sort_time‘], reverse=True)

时间: 2024-12-18 00:30:20

(11) lambda表达式用法的相关文章

C++11 Lambda表达式简单解析

C++11 新增了很多特性,lambda 表达式是其中之一,如果你想了解的 C++11 完整特性, 建议去http://www.open-std.org/看看新标准! 很多语言都提供了 lambda 表达式,如 Python,Java 8 lambda 表达式可以方便地构造匿名函数,如果你的代码里面存在大量的小函数,而这些函数一般只被调用一次,那么不妨将他们重构成 lambda 表达式. C++11 的 lambda 表达式规范如下: [ capture ] ( params ) mutable

Python Special Syntax 11: lambda表达式

lambdTesting=lambda x: x*3 print(lambdTesting(5)) 输出 15 像C#一样传递lambda表达式: def abc(t,a): return t(a) print(abc(lambdTesting,15)) 输出:45 Python Special Syntax 11: lambda表达式,布布扣,bubuko.com

C++11 lambda 表达式解析

C++11 新增了很多特性,lambda 表达式是其中之一,如果你想了解的 C++11 完整特性,建议去这里,这里,这里,还有这里看看.本文作为 5 月的最后一篇博客,将介绍 C++11 的 lambda 表达式. 很多语言都提供了 lambda 表达式,如 Python,Java 8.lambda 表达式可以方便地构造匿名函数,如果你的代码里面存在大量的小函数,而这些函数一般只被调用一次,那么不妨将他们重构成 lambda 表达式. C++11 的 lambda 表达式规范如下: [ capt

C++11 Lambda 表达式

1. 匿名函数 匿名函数是一些拥有函数体,但没有函数名的函数.Lambda是一种与匿名函数相关的编程技术,但需要说明的是Lambda表达式得到的不是一个匿名函数,而是一个函数对象.MSDN:Lambda隐式定义函数对象类并构造该类类型的函数对象. 2. Lambda语法 C++11 Lambda 表达式

C++11 lambda表达式基本用法

#include <iostream> using namespace std; void func1() { cout<<"lambda表达式,值捕获,类似值传递"<<endl; size_t v1=30;//size_t为unsigned int无符号整数 size_t v2=30; size_t v3=30; auto f=[v1,v2,v3]{return v1+v2+v3;};//lambda表达式中[]里面放的是要传递的参数,可以放多个.

c++11——lambda表达式

lambda表达式 函数式编程的一个语法,有如下优点: (1)声明式编程风格:就地匿名定义目标函数或函数对象,不需要额外写一个命名函数或者函数对象.以更直接的方式写程序,好的可读性和可维护性. (2)简洁:不需要额外再写一个函数或者函数对象,避免了代码膨胀和功能分散. (3)在需要的时间和地点实现功能闭包,使程序更灵活. lambda表达式基本概念和用法 lambda表达式定义了一个匿名函数,并且可以捕获一定范围的变量.lambda表达式的语法如下: [capture] (params) opt

C++11 lambda表达式在for_each和transform算法下的使用

以前,在lambda表达式没有进入标准的时候,对容器的遍历等涉及到使用函数指针的情况,一般人会懒得使用std::for_each,或std::transform,也许只是一个短短的几句话,却要单独写个函数,或函数对象,写的代码反而不如自己用for循环来的快. 但是,C++11引入了lambda表达式后,一切都变的简单了! 1.lambda表达式 lambda表达式是一个匿名函数,用它可以非常方便的表示一个函数对象,先简单说一下lambda表达式,下面这张图表示了C++11中lambda表达式的写

C++ 11 Lambda表达式、auto、function、bind、final、override

接触了cocos2dx 3.0,就必须得看C++ 11了.有分享过帖子:[转帖]漫话C++0x(四) —- function, bind和lambda.其实最后的Lambda没太怎么看懂. 看不懂没关系,会用就行.可惜是连用都要思考半天.其实,查找根源是定义没有搞明白. 以后买东西,用之前,先看说明书才是必要的. ---------------------------------开始正文粘贴----------------------------------------- 一.Lambda表达式

c++11 lambda表达式

c++11新增的lambda表达式特性. lambda用来表示只调用一次的小函数[=]表示取值 [&]表示取引用()表示函数的形参{}函数体,函数体前的类型为返回值类型 1 PH::runOnMainThread([=](){ 2 PH::runOnMainThread([=]() 3 { 4 // UI Scene 5 director->replaceScene(PH::LoadingScreen::create(useHighRes)); 6 }); 7 });