菜鸟学习日记(python)——推导式

 python中的推导式是一种独特的数据处理方式,可以从一个数据序列去构建另一个新的数据序列的结构体。

它包括以下推导式:

  • 列表(list)推导式
  • 字典(dict)推导式
  • 集合(set)推导式
  • 元组(tuple)推导式

列表(list)推导式

列表推导式的一般格式为:

[表达式1 for 变量名 in 列表名]

或者对推导式结果进行筛选

[表达式1 for 变量名 in 列表名 if 表达式2]

其中,表达式1表示的是列表生成元素表达式,它可以是有返回值的函数;表达式2是条件过滤语句,可以过滤掉不符合条件的值。

以下是简单的实例:

#列表推导式
#将list1乘以2倍输出
list1=[1,2,3]
print([i*2 for i in list1 if i>1])
#list1中长度大于3的字符串,小写全部转成大写输出
list1=['lily','judy','Anny','Bob']
print([str.upper() for str in list1 if len(str)>3])
#打印20以内可以被2整除的整数
print([num for num in range(20) if num%2==0])

字典(dict)推导式

字典推导式的一般格式为:

{键:值表达式 for 键 in 序列}

{键:值表达式 for 键 in 序列 if 条件表达式}

下面是简单的实例:

#字典推导式
#列表元素作为键,列表元素的长度作为值
list1=['name','sex','age']
dict1={str:len(str) for str in list1}
print(dict1)
#用推导式复制出一个拥有相同键值对的字典
dict2={'name':'卷鹅','sex':'男','age':28}
dict3={str:dict2[str] for str in dict2.keys()}
print(dict3)
print(id(dict2))        #对比两个字典的id,是不同的
print(id(dict3))
#用推导式计算三个整数的幂方
dict4={num:num**2 for num in range(1,5)}
print(dict4)
#加上筛选条件
dict4={num:num**2 for num in range(1,5) if num!=3}
print(dict4)

集合(set)推导式

集合推导式的一般格式为:

{表达式 for 变量 in 序列}

{表达式 for 变量 in 序列 if 条件表达式}

简单实例如下:

#集合推导式
set1={var**3 for var in range(1,6)}
print(set1)
set2={ch for ch in('a','b','c','d','e') if ch not in ('a','c')}
print(set2)

注意:输出的集合是无序的

元组(tuple)推导式(生成器表达式)

元组推导式可以利用 range 区间、元组、列表、字典和集合等数据类型,快速生成一个满足指定需求的元组。

元组推导式基本格式:

(表达式 for 变量名 in 序列)

  或

(表达式 for 变量名 in 序列 if 条件表达式)

元组推导式和列表推导式的用法完全相同,只是元组推导式是用 () 圆括号将各部分括起来,而列表推导式用的是中括号 [],另外元组推导式返回的结果是一个生成器对象。

但是我们可以用类型转换函数将它转换为一个元组

简单的实例如下:

#元组推导式
a = (x for x in range(1,10))
print(a)
print(type(a))
tuple1=tuple(a)
print(tuple1)
print(type(tuple1))

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

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

相关文章

Multi-Cell Downlink Beamforming: Direct FP, Closed-Form FP, Weighted MMSE

这里写自定义目录标题 Direct FPClosed-Form FPthe Lagrangian functionthe Lagrange dual function: maximizing the Lagrangianthe Lagrange dual problem: minimizing the Lagrange dual functionClosed-Form FP Weighted MMSE原论文 Lagrange dual5.1.1 The Lagrangian5.1.…

阿里云服务器经济型、通用算力型、计算型、通用型、内存型实例区别及选择参考

当我们通过阿里云的活动购买云服务器会发现,相同配置的云服务器往往有多个不同的实例可选,而且价格差别也比较大,例如同样是4核8G的配置的云服务器,经济型e实例活动价格只要1500.48/1年起,通用算力型u1实例要1795.97/1…

nvidia安装出现7-zip crc error解决办法

解决办法:下载network版本,重新安装。(选择自己需要的版本) 网址:CUDA Toolkit 12.3 Update 1 Downloads | NVIDIA Developer 分析原因:local版本的安装包可能在下载过程中出现损坏。 本人尝试过全网说的…

linux 系统安全基线 安全加固操作

目录 用户口令设置 root用户远程登录限制 检查是否存在除root之外UID为0的用户 ​​​​​​​root用户环境变量的安全性 ​​​​​​​远程连接的安全性配置 ​​​​​​​用户的umask安全配置 ​​​​​​​重要目录和文件的权限设置 ​​​​​​​找未授权的SUID…

json转yolo格式

json转yolo格式 视觉分割得一些标注文件是json格式,比如,舌头将这个舌头区域分割出来(用mask二值图的形式),对舌头的分割第一步是需要检测出来,缺少数据集,可以使用分割出来的结果,将…

无公网IP环境如何SSH远程连接Deepin操作系统

文章目录 前言1. 开启SSH服务2. Deppin安装Cpolar3. 配置ssh公网地址4. 公网远程SSH连接5. 固定连接SSH公网地址6. SSH固定地址连接测试 前言 Deepin操作系统是一个基于Debian的Linux操作系统,专注于使用者对日常办公、学习、生活和娱乐的操作体验的极致&#xff0…

数据仪表盘设计:可视化数据指标和报告

写在开头 在信息爆炸的时代,数据不再是简单的数字和图表,而是一种有机的信息体系。如何将这些琳琅满目的数据以一种直观而高效的方式展示,成为企业决策者和分析师们共同关注的问题。本文将带您深入学习如何设计和创建数据仪表盘,使数据指标和报告以一目了然的方式呈现。 …

Python---time库

目录 时间获取 时间格式化 程序计时 time库包含三类函数: 时间获取:time() ctime() gmtime() 时间格式化:strtime() strptime() 程序计时:sleep() perf_counter() 下面逐一介绍&#…

H3.3K27M弥漫性中线胶质瘤的反义寡核苷酸治疗

今天给同学们分享一篇实验文章“Antisense oligonucleotide therapy for H3.3K27M diffuse midline glioma”,这篇文章发表在Sci Transl Med期刊上,影响因子为17.1。 结果解读: CRISPR-Cas9消耗H3.3K27M恢复了H3K27三甲基化,并延…

Echarts地图案例及常见问题

前言 ECharts 是一个使用 JavaScript 实现的开源可视化库,它可以帮助用户以简单的方式创建复杂的时间序列、条形图、饼图、地图等图形。 Echarts绘制地图的案例 展示了中国各省份的人口数量 var myChart = echarts.init(document.getElementById(main)); var option = {t…

【TailwindCSS】

TailwindCSS作为一种现代化的CSS框架,以其高度的定制性和灵活性受到前端开发者的青睐。本文旨在提供一份详细的TailwindCSS使用教程,特别适用于Vite和Vue框架的组合。 我们将从安装开始,深入探讨如何在项目中有效利用TailwindCSS的各项功能&…

在AWS Lambda上部署标准FFmpeg工具——Docker方案

大纲 1 确定Lambda运行时环境1.1 Lambda系统、镜像、内核版本1.2 运行时1.2.1 Python1.2.2 Java 2 启动EC23 编写调用FFmpeg的代码4 生成docker镜像4.1 安装和启动Docker服务4.2 编写Dockerfile脚本4.3 生成镜像 5 推送镜像5.1 创建存储库5.2 给EC2赋予角色5.2.1 创建策略5.2.2…

【带头学C++】----- 九、类和对象 ---- 9.10 C++设计模式之单例模式设计

❤️❤️❤️❤️❤️❤️❤️❤️❤️❤️❤️麻烦您点个关注,不迷路❤️❤️❤️❤️❤️❤️❤️❤️❤️❤️❤️❤️ 目 录 9.10 C设计模式之单例模式设计 举例说明: 9.10 C设计模式之单例模式设计 看过我之前的文章的,简单讲解过C/Q…

遥测终端机RTU:实现远程监测和控制的重要工具

遥测终端机RTU对设备进行远程监测和控制,支持采集和传输数据,以实现对工业过程、公用事业、水文和环境的监测和管理。 遥测终端机RTU工作原理 计讯物联遥测终端机RTU通过网口、串口进行传感器/设备等现场数据采集,将其转换为数字信号&#xf…

【LeetCode】202. 快乐数

202. 快乐数 难度:简单 题目 编写一个算法来判断一个数 n 是不是快乐数。 「快乐数」 定义为: 对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和。然后重复这个过程直到这个数变为 1,也可能是 无限循环 但始终变…

高校网站建设的效果如何

高校有较高的信息承载需求、招生宣传、学校内容呈现、内部消息触达等需求,对高校来说,如今互联网深入生活各个场景,无论学校发展、外部拓展还是内部师生互动、通知触达等都需要完善。 除了传统传单及第三方平台展示外,学校构建属…

C#-数组池减少GC工作

数组池减少GC工作 通过ArrayPool类(名称空间System.Buffers)使用数组池,可减少垃圾收集器的工作,ArrayPool管理一个数组池,数组可以从这租借,并返回池中,内存在ArrayPool中管理。 创建ArrayPool…

Html5响应式全开源网站建站源码系统 附带完整的搭建教程

Html5响应式全开源网站建站源码系统是基于Html5、CSS3和JavaScript等技术开发的全开源网站建站系统。它旨在为初学者和小型企业提供一套快速、简便的网站建设解决方案。该系统采用响应式设计,可以自适应不同设备的屏幕大小,提高用户体验。同时&#xff0…

Clean My Mac X2024解锁完整版本

Clean My Mac X是Mac上一款美观易用的系统优化清理工具,也是小编刚开始用Mac时的装机必备。垃圾需要时时清,电脑才能常年新。Windows的垃圾清理工具选择有很多,但是Mac的清理工具可选择的就很少。 今天给大家推荐大名鼎鼎的Clean My Mac X&a…

elasticsearch-head 启动教程

D:\elasticsearch-head-master>grunt server ‘grunt’ 不是内部或外部命令,也不是可运行的程序 或批处理文件。 npm install -g grunt-clinpm install