Python 匿名函数lambda()详解

news2024/11/19 22:46:04

一、匿名函数定义

     lambda 函数是一个匿名函数(即,没有名称定义),它可以接受任意数量的参数,但与普通函数不同,它只计算并返回一个表达式

二、匿名函数语法

lambda arguments(参数): expression(表达式)

 说明: arguments是函数的参数,expression是返回的值。

lambda 函数包括三个元素:

  • 关键字 lambda:与普通函数中 def 类似

  • 参数:支持传递位置和关键字参数,与普通函数一样

  • 正文:处理定参数的表达式

 

三、匿名函数特点

  • 匿名性:lambda函数没有名字。
  • 简洁性:lambda函数通常只有一行代码,非常适合编写简单的函数。
  • 即用即弃:lambda函数主要用于一次性操作,不需要重复使用。

四、匿名函数的使用

1、映射函数map()中,我们可以使用lambda函数来应用某个操作到序列的每个元素上。

ll = [1, 2, 3, 4, 5]
mm=map(lambda x: x **3, ll)  #每个元素的3次幂
print(list(mm))

 

2、过滤函数filter()中,我们可以使用lambda函数来过滤序列中满足某个条件的元素。

ll = [33, 3, 22, 2, 11, 150]
ff=filter(lambda x: x > 20, ll)  #过滤大于20的元素
print(list(ff))

 

3、排序:在Python中,我们可以使用lambda函数作为sorted()或list.sort()函数的key参数,以便根据自定义规则对列表进行排序。

ll = [28, 3, 22, 2, 36, 15,22,11]
print(ll)
ss=sorted(ll,key=lambda x:x%2)   #排序,偶数在前,奇数在后
print(ss)

 

五、 Lambda 函数的优缺点

优点

  • 可以在定义后立即调用

  • 可以作为参数传递给高阶函数,例如 filter()、map() 和 reduce()等

缺点

  • 不能执行多个表达式

  • 很容易变得麻烦,可读性差,例如当它包括一个 if-elif-...-else 循环

  • 不能包含任何变量赋值(例如,lambda x: x=0 将抛出一个语法错误)

  • 我们不能为 lambda 函数提供文档字符串

 六、总结

    lambda函数是Python中一种强大而简洁的工具,它允许我们以匿名的方式定义简单的函数。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1500647.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Qt初识 - 编写Hello World的两种方式 | 对象树

目录 一、通过图形化方式,在界面上创建出一个控件 二、通过代码方式,创建Hello World 三、Qt 内存泄漏问题 (一) 对象树 一、通过图形化方式,在界面上创建出一个控件 创建项目后,打开双击forms文件夹中的ui文件,可…

RFID-科技的“隐秘耳语者”

RFID-科技的“隐秘耳语者” 想象一下,你身处一个光线昏暗的环境中,周围的一切都被厚厚的阴影笼罩。这时,你需要识别并获取一个物体的信息,你会选择怎么做?是点亮灯光,用肉眼仔细观察,还是打开扫…

JetPack入门

先导入依赖 implementation("androidx.lifecycle:lifecycle-extensions:2.2.0") 1.使用LifeCycle解耦页面与组件 Activity package com.tiger.lifecycle;import android.annotation.SuppressLint; import android.os.Bundle; import android.os.SystemClock; impo…

【粉丝福利】探秘内部审计数字化之道:精准解析转型方法与成功路径

🌼前言 内部审计是一种独立的、客观的确认和咨询活动,包括鉴证、识别和分析问题以及提供管理建议和解决方案。狭义的数字化转型是指将企业经营管理和业务操作的各种行为、状态和结果用数字的形式来记录和存储,据此再对数据进行挖掘、分析和应…

力资源视角的数字化应用

人力资源视角的数字化应用 随着科技的不断发展,数字化应用已经渗透到我们生活的方方面面,而人力资源管理也不例外。从招聘到员工培训,从绩效管理到薪酬福利,数字化应用正在彻底改变人力资源的工作方式和流程。本文将从人力资源的…

【探索Linux】—— 强大的命令行工具 P.26(网络编程套接字基本概念—— socket编程接口 | socket编程接口相关函数详细介绍 )

阅读导航 引言一、socket 常见API表二、函数详细介绍01. socket()02. bind()03. listen()04. accept()05. connect()06. send()07. recv()08. close()09. select()10. getaddrinfo()11. sendto()12. recvfrom()13. setsockopt()14. getsockopt()15. shutdown()16. inet_pton()1…

【C语言】InfiniBand驱动mlx4_init和mlx4_cleanup

一、中文注释 Linux内核模块的初始化和清理过程,针对一个称为mlx4的网络设备驱动。以下是代码的逐行中文注释: static int __init mlx4_init(void) {int ret;if (mlx4_verify_params())return -EINVAL; // 检查设备参数是否有效,无效则返回…

管理者和员工之间缺乏有效的沟通,导致双方对绩效目标和期望存在误解,怎么办?

管理者和员工之间缺乏有效的沟通,导致双方对绩效目标和期望存在误解,这是绩效管理中一个常见且棘手的问题。这种沟通障碍可能源于多个方面,例如双方对绩效管理的理解不同、沟通方式不当或缺乏定期的沟通机制等。 当管理者和员工对绩效目标和…

AI产品摄影丨香水

AI电商产品拍摄丨(可指定产品) 均为概念图 可换产品 可指定产品,可换logo 工具:StartAI 搭配“手机摄影”风格使用效果更佳哦 咒语:anha perfume in bottle on stone surface, in the style of everyday american…

大运集团选用泛微数字化运营平台,构建丰富应用,业务协同

大运集团有限公司创建于1987年,位于山西省运城经济技术开发区,是集汽车、摩托车研发、制造、销售、服务及国际贸易、物流配送、工程建设等为一体的跨地区、跨行业、多元化发展的大型民营企业集团。 (图片素材来自大运集团官网) 集…

Linux内存映射

目录 背景 一、什么是内存映射? 二、mman函数 1.权限问题 2.总线错误 3.内存权限 4.读文件内容 5.映射与文件 6.非法参数错误 7.偏移量大小 8.映射内存大小 8.1 申请6k,访问5k 8.2 申请2k,访问3k 8.3 返回值检查 三、内存映射实现 四…

【Windows】VMware虚拟机应用(二):安装ubuntu-14.04.4

一、下载安装包 ubuntu-14.04.4-server-amd64.iso 注:因为我是用已有的安装包,所以,这里就不写下载步骤了。 二、安装引导 以管理员身份运行 VMware Workstation Pro 注:如果不是管理员身份运行,在安装系统时会出现…

Redis入门到实战-黑马程序员

文章目录 Redis安装与启动Redis的安装启动RedisRedis客户端Redis通用命令key的层级格式 Redis五种数据类型StringHashListSetSortedSet Redis安装与启动 Redis的安装 Redis是基于C语言编写的,因此首先需要安装Redis所需要的gcc依赖: Linux安装Redis步…

能源管理系统是怎么实现节能减排的?

在这个环保意识日益增强的时代,我们都在寻找更智能、更绿色的生活方式。你是否想过,家里的电表、空调、照明系统其实可以协同工作,帮助我们节约能源,减少碳足迹呢?这就是神奇的能源管理系统在发挥作用! 能…

线程安全——使用线程安全函数,多线程中执行fork引发的问题及如何解决

目录 一、引例 二、线程安全 三、多线程中执行fork 3.1 多线程中某个线程调用 fork()&#xff0c;子进程会有和父进程相同数量的线程吗? 3.2 父进程被加锁的互斥锁 fork 后在子进程中是否已经加锁 一、引例 在主线程和函数线程中进行语句分割并输出。 #include <stdi…

vite+ts+vue3 项目搭建和基础配置

官网: 文件夹cdm进入小黑窗, 按步骤安装项目即可, 用到的都选 "是" 快速上手 | Vue.jsVue.js - 渐进式的 JavaScript 框架https://cn.vuejs.org/guide/quick-start.html安装成功后目录如下: index.html 尾部报错: cleareslint(vue/comment-directive), 已知 是eslin…

新书速览|FFmpeg开发实战:从零基础到短视频上线

资深音视频开发专家、畅销书作者重磅新作&#xff0c;从基础知识到高级应用&#xff0c;从桌面开发到移动开发&#xff0c;9大实际音视频项目完整再现 本书内容 《FFmpeg开发实战&#xff1a;从零基础到短视频上线》是一本FFmpeg开发的实战教程&#xff0c;由浅入深&#xff0…

vite+vue3门户网站菜单栏动态路由控制

门户网站用户端需要分板块展示&#xff0c;板块内容由管理端配置&#xff0c;包括板块名称&#xff0c;访问路径&#xff0c;路由组件&#xff0c;展示顺序&#xff0c;是否展示。如下图所示&#xff1a; 用户访问门户网站时&#xff0c;展示菜单跳转通过板块配置&#xff0c;动…

Leetcode : 1137. 高度检查器

学校打算为全体学生拍一张年度纪念照。根据要求&#xff0c;学生需要按照 非递减 的高度顺序排成一行。 排序后的高度情况用整数数组 expected 表示&#xff0c;其中 expected[i] 是预计排在这一行中第 i 位的学生的高度&#xff08;下标从 0 开始&#xff09;。 给你一个整数…