Python - lambda 匿名函数

作者:神秘网友 发布时间:2021-02-28 09:20:03

Python - lambda 匿名函数

说匿名函数之前,先来回归一下函数的语法格式:

def 函数名([形式参数1, 形式参数2, ....., 形式参数n]):
    函数体

当函数中只有一行return语句时,函数的定义可以用一个lambda表达式来代替。



lambda的语法格式:

lambda [形式参数1, 形式参数2, ....., 形式参数n]: 关于形式参数的表达式

lambda函数与普通定义函数的语法格式对比:

  • (1) 没有函数名
  • (2) 没有关键字def
  • (3) 没有小括号
  • (4) 关于形式参数的表达式相当于函数的返回值

所以 lambda 函数就是匿名简化版的函数。

对比:

普通函数

def add(num1, num2):
    return num1 + num2

对应的lambda表达式

lambda num1, num2: num1 + num2

lambda表达式打印

lambda num1, num2: num1 + num2

# 在python中,一切皆为对象,所以lambda表达式也是对象,从而lambda表达式可以被赋值给变量。
le = lambda num1, num2: num1 + num2
print(le(1, 2))  # 3


一个函数可以作为另外一个函数的实参,从而lambda表达式也可以作为一个函数的实参。

引用上一节课的例子:map函数,如果不记得 map 函数的使用方法,看这个
https://www.cnblogs.com/wwho/p/14454408.html

result = map(lambda x: x * x, [1, 2, 3])
print(list(result))  # [1, 4, 9]


一个函数可以作为另外一个函数的返回值

还是拿上节课的例子:
https://www.cnblogs.com/wwho/p/14454408.html

# -*- coding: UTF-8 -*-

def add(num1, num2):
    return num1 + num2

print(add)

def do_sth():
    return add

print(do_sth()(2, 3)) # 结果:5

使用lambda表达式替换

def do_sth():
    return lambda num1, num2: num1 + num2

print(do_sth()(2, 3)) # 结果:5

使用 lambda 函数简化一些

Python - lambda 匿名函数 相关文章

  1. python进阶(12)闭包

    闭包 首先了解一下:如果在一个函数的内部定义了另一个函数,外部的我们叫他外函数,内部的我们叫他内函数。 在一个外函数中定义了一个内函数,内函数里运用了外函数的 临时变量 ,并且外函数的返回值是内函数的引用。这样就构成了一个闭包。 一般情况下,在

  2. python进阶(13)装饰器

    装饰器 装饰器放在一个函数开始定义的地方,它就像一顶帽子一样戴在这个函数的头上。和这个函数绑定在一起。在我们调用这个函数的时候,第一件事并不是执行这个函数,而是将这个函数做为参数传入它头顶上这顶帽子,这顶帽子我们称之为 装饰器 。 装饰器的功

  3. Code-Server 安装Python插件无法启动解决办法

    code-server code-server基于VScode的在线IDE,一般部署在服务器,方便客户端在线访问 Github地址:https://github.com/cdr/code-server 云端部署 云端部署全部正常 Linux服务器版本: CentOS 8 server 服务器厂商: 阿里云 , Vultr Code-server版本: V3.7 , V3.

  4. python邮件发送封装类

    import os import smtplib from email.mime.text import MIMEText from email.mime.multipart import MIMEMultipart from common.config import configs class EmaliUtils: def __init__(self,smtp_body, attch_path =None): self.smtp_server = 'smtp.qq.co

  5. python 使用pymysql上传excel数据

    from django.shortcuts import render, HttpResponse from Day72bbs.settings import MEDIA_ROOT from docxtpl import DocxTemplate import os import xlrd MEDIA_ROOT 在 settings.py 中的设置为 MEDIA_URL='/doctemplates/' MEDIA_ROOT = os.path.join(BAS

  6. 数据库之存储过程

    存储过程 1.什么是存储过程 存储过程就类似于python中的自定义的函数,它的内部包含了一系列可以执行的sql语句,存储过程存放于mysql服务端中,你可以直接通过调用存储过程触发内部sql语句的执行 2.存储过程的基本使用 procedure /pr??si?d??(r) 程序, 过程 --

  7. python给证件照换底色

    import cv2import numpy as npfrom tkinter import *from tkinter import ttkimport tkinter as tkimport tkinter.filedialogimport osroot = Tk()root.title('证件照背景色更换')root.geometry('400x300')SelectNum = tk.IntVar() # 用来储存下面勾选项1中

  8. LeetCode | 0669. 修剪二叉搜索树【Python】

    问题 力扣 给你二叉搜索树的根节点 root ,同时给定最小边界low 和最大边界 high。通过修剪二叉搜索树,使得所有节点的值在[low, high]中。修剪树不应该改变保留在树中的元素的相对结构(即,如果没有被移除,原有的父代子代关系都应当保留)。 可以证明,存

  9. python 雷达图 转载:https://mp.weixin.qq.com/s/M1f0ItGQz3BKZTIe1ootYQ

    一、前言 我们平常玩游戏或者看电影的时候,会看到里面介绍各种人的能力指标。 以百度百科提供的漫威人物能力数值为例,如下图: 分别介绍了各个超级英雄的智力、力量、速度、耐力、能量发射、战斗技能。 但是吧,光是这样的表格,并不能很直观的看出英雄的

  10. LeetCode | 0662. 二叉树最大宽度【Python】

    问题 力扣 给定一个二叉树,编写一个函数来获取这个树的最大宽度。树的宽度是所有层中的最大宽度。这个二叉树与满二叉树(full binary tree)结构相同,但一些节点为空。 每一层的宽度被定义为两个端点(该层最左和最右的非空节点,两端点间的null节点也计入

每天更新java,php,javaScript,go,python,nodejs,vue,android,mysql等相关技术教程,教程由网友分享而来,欢迎大家分享IT技术教程到本站,帮助自己同时也帮助他人!

Copyright 2020, All Rights Reserved. Powered by 跳墙网(www.tqwba.com)|网站地图|关键词