zoukankan      html  css  js  c++  java
  • python之lambda的使用

    摘要:本文主要介绍了lambda的使用。

    1、lambda初体验

    lambda其实是一个匿名函数,其使用的语法形式为  lambda  参数列表:表达式(返回值),其主要作用是减少代码量。

    1 func1=lambda a,b:a*b
    2 print(func1)    #<function <lambda> at 0x000001BA03FF5598>  可以看出匿名函数
    3 print(func1(10,10))    #100

     2、lambda的参数形式

    其实可以想到lambda作为一个匿名函数,其参数的形式应该和正常的函数没有什么两样。如下:

     1 func1=lambda :100   #无参数形式
     2 print(func1())  #100
     3 
     4 func2=lambda a,b:a**b  #一般参数形式
     5 print(func2(2,3))  #8
     6 
     7 func3=lambda a,b,c=100:a**b+c   #默认参数形式
     8 print(func3(2,3))   #108
     9 
    10 func4=lambda *args:args   #可变参数
    11 print(func4(100,'abc','009'))   #(100, 'abc', '009')
    12 
    13 func5=lambda **kwargs:kwargs   #可变参数
    14 print(func5(name='tom',age=18))  #{'name': 'tom', 'age': 18}

     3、lambda的应用

    • 带判断表达式的lambda:

    1 func=lambda a,b:(a+b) if a>b else (a-b)
    2 print(func(2,3))  #-1
    •  在列表排序方法sort的参数中直接调用lambda可以极大的减少代码量:

     1 student=[{'name':'Tom','age':18,'class':'001'},
     2       {'name':'Jack','age':20,'class':'003'},
     3       {'name':'Lucy','age':24,'class':'009'}]
     4 key=lambda x:x['name']
     5 print(key(student[1]))  #Jack这里只是为了看清楚下面sort的参数是什么
     6 
     7 student.sort(key=lambda x:x['name'])  #这里x指代的就是student列表中的每一项,返回值是每一项字典中的name
     8 print(student)
     9 #[{'name': 'Jack', 'age': 20, 'class': '003'}, {'name': 'Lucy', 'age': 24, 'class': '009'}, {'name': 'Tom', 'age': 18, 'class': '001'}]
    10 
    11 student.sort(key=lambda x:x['name'],reverse=True)
    12 print(student)
    13 #[{'name': 'Tom', 'age': 18, 'class': '001'}, {'name': 'Lucy', 'age': 24, 'class': '009'}, {'name': 'Jack', 'age': 20, 'class': '003'}]
    14 
    15 student.sort(key=lambda x:x['age'])
    16 print(student)
    17 #[{'name': 'Tom', 'age': 18, 'class': '001'}, {'name': 'Jack', 'age': 20, 'class': '003'}, {'name': 'Lucy', 'age': 24, 'class': '009'}]
  • 相关阅读:
    CUDA编程学习笔记2
    CUDA编程学习笔记1
    论文阅读 <Relocalization, Global Optimization and Map Merging for Monocular Visual-Inertial SLAM>
    Adding Cues (线索、提示) to Binary Feature Descriptors for Visual Place Recognition 论文阅读
    Omnidirectional DSO: Direct Sparse Odometry with Fisheye Cameras 论文摘要
    CUDA C编程入门
    PatchMatchStereo可能会需要的Rectification
    PatchMatch小详解
    PatchMatch Stereo
    PatchMatch笔记
  • 原文地址:https://www.cnblogs.com/lzy820260594/p/11804268.html
Copyright © 2011-2022 走看看