列表、字典推导式介绍和用法|lambda的介绍和用法

news2024/11/26 8:37:02

列表、字典推导式介绍和用法|lambda的介绍和用法

  • 列表推导式
    • 示例应用
    • 与传统写法代码行数直观比较
  • 字典推导式
    • 示例应用
  • lambda
    • 示例应用

列表推导式、字典推导式、lambda使用简洁语法进行代码的编写

列表推导式

用于快速创建新的列表,通过对现有列表进行迭代和筛选。
语法:new_list = [expression for item in iterable if condition]

expression 是一个表达式,用于定义新列表中的元素。
item 是可迭代对象中的每个元素。
iterable 是一个可迭代对象(如列表、字符串、元组等)。
condition 是一个可选的条件,用于筛选元素并仅包含满足条件的元素。

示例应用

# 表达式输入
original_list = [1, 2, 3, 4, 5]
squared_list = [x**2 for x in original_list]
print(squared_list)  # 输出 [1, 4, 9, 16, 25]

#存在判断条件
original_list = [1, 2, 3, 4, 5]
squared_list = [x**2 for x in original_list if x > 2]
print(squared_list)  # 输出 [9, 16, 25]

# 有多个判断条件
original_list = [1, 2, 3, 4, 5]
squared_list = [x**2 for x in original_list if x >= 2 and x != 5]
print(squared_list)  # 输出 [4, 9, 16]

# 有多个输出
original_list = [1, 2, 3, 4, 5]
squared_list = [x**2 if x > 2 else "小于等于2" for x in original_list]
print(squared_list)  # 输出 ['小于等于2', '小于等于2', 9, 16, 25]

与传统写法代码行数直观比较

在这里插入图片描述

字典推导式

用于创建字典的简洁语法。允许我们使用一种紧凑的方式从可迭代对象中创建字典,并可选地对键和值进行转换、筛选或操作。
语法:{key_expression: value_expression for item in iterable}

key_expression 是对每个元素生成键的表达式
value_expression 是对每个元素生成值的表达式
item 是可迭代对象中的每个元素。

示例应用


# 数据处理,生成新的字典
numbers = {'a': 2, 'b': 4, 'c': 6, 'd': 8}
squared_dict = {key: value**2 for key, value in numbers.items()}
print(squared_dict)  # 输出: {'a': 4, 'b': 16, 'c': 36, 'd': 64}

# 存在条件输出
numbers = {'a': 2, 'b': 4, 'c': 6, 'd': 8}
squared_dict = {key: value**2 for key, value in numbers.items() if value >= 6}
print(squared_dict)  # 输出: {'c': 36, 'd': 64}

# 存在多个输出情况
numbers = {'a': 2, 'b': 4, 'c': 6, 'd': 8}
squared_dict = {key: value**2 if key == 'c' else value for key, value in numbers.items()}
print(squared_dict)  # 输出: {'a': 2, 'b': 4, 'c': 36, 'd': 8}

# 数据转换,列表转字典
fruits = ['apple', 'banana', 'orange']
fruit_dict = {fruit: index for index, fruit in enumerate(fruits)}
print(fruit_dict)  # 输出: {'apple': 0, 'banana': 1, 'orange': 2}

lambda

是 Python 中用于创建匿名函数(即没有名称的函数)的关键字。它提供了一种简洁的方式来定义简单的函数,通常用于需要一个简单函数作为参数传递给其他函数的情况。

语法:lambda arguments: expression
arguments:函数的参数列表,可以包含零个或多个参数。
expression:函数的返回值表达式。

示例应用

add = lambda x, y: x + y
result = add(3, 5)
print(result)  # 输出: 8

在这个示例中,我们使用 lambda 创建了一个接受两个参数 x 和 y 的匿名函数。函数体中的表达式 x + y 计算了这两个参数的和。然后我们通过调用 add(3, 5) 来使用这个 lambda 函数,并将结果赋给变量 result,最后打印输出结果。

lambda 函数通常用于需要一个简单函数的场景,例如在函数式编程中使用 map()、filter()、reduce() 等函数,或者在需要定义短小的回调函数(将一个函数作为参数传递给另一个函数,在特定事件或条件发生时被调用的函数)时使用。

map()、filter()、reduce() 等函数的具体使用参考另一篇博客

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

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

相关文章

pytest(二):关于pytest自动化脚本编写中,初始化方式setup_class与fixture的对比

一、自动化脚本实例对比 下面是一条用例,使用pytest框架,放在一个类中,两种实现方式: 1.1 setup_class初始化方式 1. 优点: 代码结构清晰,setup_class 和 teardown_class 看起来像传统的类级别的 setup 和 teardown 方法。2. 缺点: 使用 autouse=True 的 fixture 作为…

文件夹名称大小写转换:名称首字母转大写,一种高效的文件管理方法

在日常生活和工作中,电脑文件夹的管理对于提高工作效率和文件检索的便捷性至关重要。文件夹名称的命名规则直接影响到文件组织的有序性和查找的速度。其中,将文件夹名称的首字母转换为大写是一种简单而高效的管理方法,下面我们就来详细探讨实…

Spring Security 入门1

1. 概述 基本上,在所有的开发的系统中,都必须做认证(authentication)和授权(authorization),以保证系统的安全性。 authentication [ɔ,θɛntɪ’keʃən] 认证 authorization [,ɔθərɪ’zeʃən] 授权 以论坛举例子: 【认证…

Context capture/Pix4Dmapper/AutoCAD/CASS/EPS软件的安装流程与使用方法;土方量计算;无人机摄影测量数据处理

目录 专题一 无人机摄影测量技术应用现状及其发展 专题二 基本原理和关键技术讲解 专题三 无人机影像外业数据获取 专题四 数据处理环境建立与软件熟悉 专题五 GNSS数据土方量计算 专题六 基于无人机影像数据的正射影像制作 专题七 基于无人机影像数据的三维模型制作 专…

号称能打败MLP的KAN到底行不行?数学核心原理全面解析

前几天火爆的Kolmogorov-Arnold Networks是具有开创性,目前整个人工智能社区都只关注一件事LLM。我们很少看到有挑战人工智能基本原理的论文了,但这篇论文给了我们新的方向。 mlp或多层感知位于AI架构的最底部,几乎是每个深度学习架构的一部…

为什么 ChatGPT 不火了?

不火了是有原因的,下面我来从大部分人拿到 ChatGPT 之后的两大痛点开始讲起: 很多朋友拿到 ChatGPT 后的第一个痛点就是:用的不好 你经常会感觉到 ChatGPT 回答的好空,没有太多参考价值。 而第二个痛点则是:无处去用…

【Gateway】网关集成Knife4j—swagger接口文档

文章目录 前言一、相关配置1.网关gateway配置①.网关增加配置 pom文件②.网关增加配置 SwaggerHandler③.网关增加配置 SwaggerResourceConfig④.网关增加配置 SwaggerConfig 2.网关过滤器 二、接口文档使用1.访问文档2.查看文档 总结 前言 在日常开发中是需要前后端联调的&am…

加密杂谈:Base 向上,BSC 向下

Aerdrome 价格走过一轮,Base 一己之力扶持起巅峰 1B Mcap, 2B FDV 的百倍币,秀出了肌肉,其所带来的正外部性也进一步盘活了 Base 生态 反观 BSC 本轮哪怕靴子落地依然没个响,差距在哪里?本 Thread 将以此为切入点探讨…

Vue3:menu导航栏出现多个同一跳转路径的菜单处理

文章目录 需求整理实现思路实现过程 需求整理,实现思路 最近公司想将之前老的项目整理出来,因为这个老项目内容太杂什么页面都往里面塞,导致菜单特别多,公司就像将这个老的项目迁出来,这个旧的项目本来是后端PHP写的。…

【保姆级详细步骤教学用DOSBoxV0.74写出一个汇编语言程序输出Hello World!】

使用任何文本编辑器创建一个名为 HELLO.ASM 的文件,并将以下代码粘贴到文件中: .MODEL SMALL .STACK 100H.DATAMSG DB Hello, World!, $PROMPT DB 13, 10, Press any key to exit..., $.CODEMAIN PROCMOV AX, DATAMOV DS, AXMOV AH, 09HLEA DX, MSGINT …

用户页面触发点击事件和 js 执行点击事件的区别

文章目录 情景展示情况一:用户点击页面触发情况二:通过 js 触发点击 结果分析情况一情况二 其实这个谜底揭开之后,第一反应都是,哦~,非常简单,但是细节决定成败,我被这个细节毁掉了,…

docker资源限额

多数的应⽤场景要对Docker容器的运⾏内存进⾏限制,防⽌其使⽤过多的内存。 格式:-m或--memory 正常的内存大小 [rootadmin ~]# docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS …

硬件设计——滤波器设计_MIC用有源带通滤波器

“在已有的成熟稳定的滤波器基础上,根据业务需要对原设计进行优化调整以得到新的滤波器” 是滤波器设计的一种常用方法。 MIC用有源带通滤波器 介绍一种简单直观的带通滤波器以及计算过程,以作未来可参考的基线设计。该滤波器可用于音频信号&#xff0…

【算法】基础算法004之前缀和

👀樊梓慕:个人主页 🎥个人专栏:《C语言》《数据结构》《蓝桥杯试题》《LeetCode刷题笔记》《实训项目》《C》《Linux》《算法》 🌝每一个不曾起舞的日子,都是对生命的辜负 前言 本篇文章为大家带来前缀和…

【EI会议|投稿优惠】2024年物理化学与应用数学国际会议(IACPCAM 2024)

2024 International Conference on Physical Chemistry and Applied Mathematics 一、大会信息 会议名称:2024年物理化学与应用数学国际会议会议简称:IACPCAM 2024收录检索:提交Ei Compendex,CPCI,CNKI,Google Scholar等会议官网:…

基于树莓派的六足机器人方案设计+源代码+工程内容说明

文章目录 源代码下载地址项目介绍项目内容说明简单预览 项目备注源代码下载地址 源代码下载地址 点击这里下载源码 项目介绍 项目内容说明 hardware为项目相关硬件设计 机械结构为六足机器人的3d建模工程,包括本体和云台遥控器在ESP32最小开发板上集成了MPU605…

Python面向对象编程思想的深入学习

魔术方法的使用 案例体验 class Student:def __init__(self, name, age):self.name nameself.age age# __str__魔术方法, 如果不去写这个方法,那么print输出的则是信息存储的内存地址。def __str__(self):return fStudent类对象,name:{self.name}, ag…

入门视频剪辑:视频合并不再难,批量嵌套合并的简单步骤

在数字媒体时代,视频剪辑已成为一项基本技能。无论是制作家庭电影、公司宣传片还是在线教育内容,视频剪辑都扮演着重要角色。对于初学者来说,视频剪辑可能看起来有些复杂,但掌握了正确的步骤和技巧后,你会发现它其实并…

【资源分享】PyCharm2020安装教程

::: block-1 “时问桫椤”是一个致力于为本科生到研究生教育阶段提供帮助的不太正式的公众号。我们旨在在大家感到困惑、痛苦或面临困难时伸出援手。通过总结广大研究生的经验,帮助大家尽早适应研究生生活,尽快了解科研的本质。祝一切顺利!—…

了解外汇震荡类货币对特征与交易策略

外汇市场是全球最大的金融市场,每天的交易量超过6万亿美元。在这个市场上,货币对之间的价格变动反映了全球经济和政治动态。外汇货币对通常被分为三类:主要货币对、次要货币对和外来货币对。而在交易这些货币对时,市场表现通常分为…