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

列表、字典推导式介绍和用法|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://xiahunao.cn/news/3029396.html

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

相关文章

技术速递|Python in Visual Studio Code 2024年5月发布

排版:Alan Wang 我们很高兴地宣布 Visual Studio Code 的 Python 和 Jupyter 扩展将于 2024 年 5 月发布! 此版本包括以下公告: “Implement all inherited abstract classes”代码操作新的自动缩进设置Debugpy 从 Python 扩展中删除&#…

vivado新版本兼容老版本,vitis classic兼容sdk教程

new version: vivado版本2023.2 和vitisv classic 2023.2 old version: vivado 2018.3以及之前的版本 打开工程 自动升级到当前版本,选择OK 点击Yes,合并当前的目录架构 点击OK 点击Report IP status 勾选要升级的IP核,点击升级 在项目工程文件夹…

Java医院绩效考核系统源码maven+Visual Studio Code一体化人力资源saas平台系统源码

Java医院绩效考核系统源码mavenVisual Studio Code一体化人力资源saas平台系统源码 医院绩效解决方案包括医院绩效管理(BSC)、综合奖金核算(RBRVS),涵盖从绩效方案的咨询与定制、数据采集、绩效考核及反馈、绩效奖金核…

Hadoop | 数据清洗

# 数据清洗概念 通常情况下,大数据平台获得原始数据文件中,存在大量无效数据和缺失数据,需要再第一时间,对数据进行清洗,获得符合后续处理需求的数据内容和格式 # 需求 对手机流量原始数据,将其中的手机号…

《Decoupled Contrastive Learning for Long-Tailed Recognition》阅读笔记

论文标题 《Decoupled Contrastive Learning for Long-Tailed Recognition》 针对长尾识别的解耦对比学习 作者 Shiyu Xuan 和 Shiliang Zhang 来自北京大学计算机学院多媒体信息处理国家重点实验室 初读 摘要 监督对比损失(Supervised Contrastive Loss, SC…

使用GitLab自带的CI/CD功能在远程服务器部署项目(三)

前置内容: 通过Docker Compose部署GitLab和GitLab Runner(一) 使用GitLab自带的CI/CD功能在本地部署项目(二) 目录 一、在GitLab服务器上生成私钥与公钥 二、将公钥拷贝到应用服务器上 三、将私钥给到Docker Exec…

论文阅读:The Unreasonable Ineffectiveness of the Deeper Layers 层剪枝与模型嫁接的“双生花”

作者实证研究了针对流行的开放式预训练 LLM 系列的简单层修剪策略,发现在不同的 QA 基准上,直到去掉一大部分(最多一半)层(Transformer 架构)后,性能的下降才会降到最低。为了修剪这些模型&…

车载电子电器架构 —— 应用软件开发(上)

车载电子电器架构 —— 应用软件开发(上) 我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 屏蔽力是信息过载时代一个人的特殊竞争力,任何消耗你的人和事,多看一眼都是你的不对。非必要不费力证明…

OAuth 2.0 和 OAuth 2.1

OAuth 2.0 和 OAuth 2.1比较: OAuth 2.0 和 OAuth 2.1 是授权框架的不同版本,它们用于允许应用程序安全地访问用户在另一个服务上的数据。以下是它们之间的一些主要区别: 安全性增强:OAuth 2.1 旨在提高安全性,它整合…

基于VOLOPV2的自动驾驶环境感知系统

基于VOLOPV2的自动驾驶环境感知系统是一个复杂的系统,它主要负责实时检测并识别周围环境中的各种物体和信息,为自动驾驶车辆提供必要的感知数据。以下是对该系统的一个简要介绍: 环境感知是自动驾驶系统中的一个关键部分,它依赖于…

关于Ardupilot的固定翼(plane)的控制

起因 由于项目原来是使用的四旋翼,并且是PX4版本的四旋翼; 如今需要对无人机固定翼进行控制,并要求使用Ardupilot的固件进行研究。 特定在此记录对固定翼的学习,以和大家分享观点和交流学习。 PX4和Ardupilot关系 PX4和Ardupilot都是固件,固件就是软件的意思。两者都是…

Go PDF文件操作

目录 介绍 安装 gofpdf API 代码示例 结果展示 介绍 gofpdf 是一个在 Go 语言中用于生成 PDF 文档的库。 安装 gofpdf 首先,你需要安装 gofpdf 库。你可以使用 go get 命令来安装它: go get github.com/jung-kurt/gofpdf API 功能 函数名参数解释示…

【线性代数】英语版听课笔记

线性代数 - 北京航天航空大学(英文版)_哔哩哔哩_bilibili 39.concept of vector space in this lecture we will studyvector space, the concept of basis dimension and coordinates 向量空间的维数:向量空间的基底所含向量的…

快速上手prometheaus grafana 监控

介绍 prometheaus 一个定时输出指标数据的巡检组件? grafana 一个读取指标,可视化的提供了好看界面的组件? 教程 如何和springboot项目集成 【IT老齐153】超级实用!十分钟掌握Prometheus与Grafana监控SpringBoot应用_哔哩哔哩_…

SG3225EEN在PAM4光模块和400G,QSFP-DD光模块中的应用

爱普生晶振SG3225EEN,156.25MHz在PAM4光模块和QSFP-DD光模块中的应用。光模块市场已发展至400G光模块,那么PAM4光模块和400G QSFPDD光模块有哪些区别呢?SG3225EEN又是怎么应用在PAM4光模块和QSFP-DD光模块中的呢? 首先介绍的是PAM4光模块:PAM4是PAM(脉…

安装docker镜像nginx1.26.0版本,与删除docker容器【灵异事件】

为了http3 的这个模块,所以需要升级nginx的版本,需要nginx1.26.0才有 –with-http_v3_module 这个模块 为什么记录一下?因为觉得奇怪 1:删除nginx镜像,显示镜像还被某个容器在使用 luichunluichun:~$ docker rmi ng…

蜂群优化算法(bee colony optimization algorithm)

​注意:本文引用自专业人工智能社区Venus AI 更多AI知识请参考原站 ([www.aideeplearning.cn]) 算法引言 自然界的启发:BSO算法的灵感来自于蜜蜂在自然界中的觅食行为。在自然界中,蜜蜂需要找到花蜜来生存。当一只蜜…

通用型产品发布解决方案(后端环境搭建)

文章目录 后端renren脚手架配置1.解压后放到项目目录下2.新建商品模块1.创建一个新模块 sunliving-commodity2.删除两个不必要的文件3.pom.xml 引入依赖 3.maven进行聚合管理1.将刚才配置的pom.xml文件复制到父项目下并进行修改2.手动将这个pom.xml加入项目(如果右下…

克服 Prometheus 单值数据模型的局限性:GreptimeDB 的新路径

引言 Prometheus 已经成为监控和报警生态系统的基石,在高效、直接地处理实时指标(Metric)方面有着强大的表现。Prometheus 的核心是一个包含单个值和一系列标签的数据模型。这种设计在提升简单性和适应性的同时,也带来了一些挑战…

论文《Deep graph tensor learning for temporal link prediction》阅读

论文《Deep graph tensor learning for temporal link prediction》阅读 论文概况IntroductionRelated work动态图表示学习图张量表示 Preliminary张量生成建模 深度图张量学习模型A.基于图紧凑的空间表示B.时间模式表示C.时空特征聚合D.损失函数 实验消融实验 总结 论文概况 …