8️⃣ 高级特性—— 列表生成式

文章目录

    • 🧠 总结
    • 1. 基本语法
    • 2. 加筛选条件
      • 🔁 双层循环(全排列)
      • 📂 遍历目录
      • 🔑 遍历字典
      • 🔡 转小写
    • 3. if 和 if...else 的区别
    • 4. 练习题

🧠 总结

特性用法示例
基础语法[x for x in iterable]
带条件筛选[x for x in iterable if condition]
条件表达式[x if cond else y for x in iterable]
多重循环[x + y for x in A for y in B]
字典处理[k + '=' + v for k, v in d.items()]
类型判断过滤[x for x in L if isinstance(x, str)]

1. 基本语法

[x for x in iterable]

示例:生成 1~10 的平方数

squares = [x * x for x in range(1, 11)]
print(squares)
# [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

2. 加筛选条件

只保留偶数平方:

evens = [x * x for x in range(1, 11) if x % 2 == 0]
# [4, 16, 36, 64, 100]

🔁 双层循环(全排列)

pairs = [m + n for m in 'ABC' for n in 'XYZ']
# ['AX', 'AY', 'AZ', 'BX', 'BY', 'BZ', 'CX', 'CY', 'CZ']

📂 遍历目录

import os
files = [d for d in os.listdir('.')]

🔑 遍历字典

d = {'x': 'A', 'y': 'B', 'z': 'C'}
pairs = [k + '=' + v for k, v in d.items()]
# ['x=A', 'y=B', 'z=C']

🔡 转小写

L = ['Hello', 'World', 'IBM', 'Apple']
lowered = [s.lower() for s in L]
# ['hello', 'world', 'ibm', 'apple']

3. if 和 if…else 的区别

✅ 过滤条件(写在 for 后):

[x for x in range(1, 11) if x % 2 == 0]
# [2, 4, 6, 8, 10]

⚠️ ❌ 错误写法(不能在过滤条件加 else):

# 错误示例:
# [x for x in range(1, 11) if x % 2 == 0 else 0]

✅ 条件表达式(写在 for 前)必须带 else

[x if x % 2 == 0 else -x for x in range(1, 11)]
# [-1, 2, -3, 4, -5, 6, -7, 8, -9, 10]

4. 练习题

将包含字符串与非字符串的列表,转换为小写字符串列表。

L1 = ['Hello', 'World', 18, 'Apple', None]
L2 = [s.lower() for s in L1 if isinstance(s, str)]print(L2)
# ['hello', 'world', 'apple']# 测试
if L2 == ['hello', 'world', 'apple']:print('✅ 测试通过!')
else:print('❌ 测试失败!')

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

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

相关文章

DocC的简单使用

DocC的简单使用 在写3GShare中,由于刚开始使用MVC模式来写东西,对很多东西都不是很熟,经常写着写着就忘了自己在写什么,所以学了一下DocC来加快开发进度 什么是DocC 简单来说,DocC就是更高级的注释,虽然…

深入理解C语言快速排序与自省排序(Introsort)

排序算法是计算机科学中最基础也是最重要的知识之一。快速排序(Quicksort)因其平均时间复杂度为 O(n log n) 而广受欢迎,但在最坏情况下会退化到 O(n)。为了克服这一缺点,自省排序(Introsort) 应运而生&…

C#编程基础:运算符与结构详解

目录 一.关系运算符 常见关系运算符 二.逻辑运算符 常见逻辑运算符 1. 逻辑与(&& 或 and) 2. 逻辑或(|| 或 or) 3. 逻辑非(! 或 not) 运算符优先级 三.if语句 1.c#程序的三大结构 1.顺序…

嵌入式学习-土堆目标检测(3)-day27

再学一个labelme在labelstudio环境中再pip install labelme安装好后直接输入 labelme之后点击保存,选择保存文件地址还有一个就是将labelme的格式转化为yolo格式还是在labelstudio这个环境里面安装pip install labelme2yolo

Qt OpenGL 集成:开发 3D 图形应用

Qt 提供了完善的 OpenGL 集成方案,使开发者能够在 Qt 应用中高效开发 3D 图形应用。通过 Qt 的 OpenGL 模块,可简化 OpenGL 上下文管理、窗口渲染和跨平台适配,同时结合现代 OpenGL 特性(如着色器、顶点缓冲、纹理等)实…

【NLP舆情分析】基于python微博舆情分析可视化系统(flask+pandas+echarts) 视频教程 - 热词评论查询功能实现

大家好,我是java1234_小锋老师,最近写了一套【NLP舆情分析】基于python微博舆情分析可视化系统(flaskpandasecharts)视频教程,持续更新中,计划月底更新完,感谢支持。今天讲解热词评论查询功能实现 视频在线地址&#…

使用 Google Earth 的 DEM — 教程。

数字高程模型 (DEM)描绘了已知高程点之间的表面高程。本教程将向您展示如何使用 Google Earth 的高程数据生成 DEM。在当今世界,DEM 主要用于 GIS 应用。 当然,我们可以从美国地质调查局 (USGS) 网站下载数字高程模型 (DEM)。但如果我们想知道某个地点的…

在 UniApp 中实现中间凸起 TabBar 的完整指南

如何在 UniApp 中设置中间 TabBar 凸起效果 在移动应用开发中,TabBar 是常见的导航组件,而中间凸起的 TabBar 按钮则是一种流行的设计风格,常用于突出重要功能(如发布、拍照等)。UniApp 提供了 midButton 属性&#xf…

微观低代码

今日去深圳的一家工厂给客户做培训,主要培训内容为低代码产品的二开和功能演示。客户使用了20年的ERP和OA系统,目前想对接到低代码平台。客户目前想实现的主要功能是,对接OA的单点登录,把ERP的功能迁移到低代码平台上来工厂规模比…

Linux进程控制:掌握系统的核心脉络

Linux进程控制:掌握系统的核心脉络 在 Linux 系统中,进程控制是系统运行的核心机制之一。无论是日常的命令行操作,还是复杂的后台服务运行,都离不开对进程的管理和控制。本文将深入探讨 Linux 进程控制的相关知识,帮助…

4N90-ASEMI电机控制专用4N90

编辑:LL4N90-ASEMI电机控制专用4N90型号:4N90品牌:ASEMI封装:ITO-220ABRDS(on):3.60Ω批号:最新引脚数量:3封装尺寸:如图特性:N沟道MOS管工作结温:-55℃~150℃一、卓越性…

Java 笔记 lambda

✅Lambda 基本语法 (parameters) -> expression 或 (parameters) -> { statements }// 无参数 Runnable r () -> System.out.println("Hello");// 单个参数&#xff08;小括号可省略&#xff09; Consumer<String> c s -> System.out.println(s…

安全风险监测平台:被动应对向主动预防的转变

一、智能识别预警系统安全风险监测平台通过部署多维度感知网络&#xff0c;实现对各类安全隐患的智能识别与实时预警。系统采用深度学习算法&#xff0c;对人员行为、设备状态、环境参数等进行全天候监测分析&#xff0c;建立动态风险评估模型。当检测到异常情况时&#xff0c;…

图片查重从设计到实现(2)Milvus安装准备etcd介绍、应用场景及Docker安装配置

etcd作用、应用场景及Docker安装配置 在分布式向量数据库 Milvus 的架构中&#xff0c;etcd 扮演着至关重要的角色。Milvus 用于存储和管理海量向量数据&#xff0c;支持高效的相似性搜索等操作&#xff0c;而其分布式集群的正常运行高度依赖元数据的一致性和可靠性&#xff0c…

零弹窗干扰的贪吃蛇游戏,下载即玩

软件介绍 在寻找贪吃蛇游戏的过程中&#xff0c;我发现了一款PC端版本&#xff0c;无需登录即可直接使用&#xff0c;完全符合我的需求。 使用优势 这款软件最大的亮点在于完全免费&#xff0c;没有任何广告和弹窗干扰&#xff0c;支持完全离线运行&#xff0c;让用户能够专注…

excel2013VBA开发access mdb数据库系统的一点经验分享

最近&#xff0c;自己从网盘里重新下载了过去保存的vba开发资料&#xff0c;就顺手研究起了如何能通过excel203结合access 2013 mdb数据库系统开发个VBA小系统。过简单一说说了&#xff01;接说干货经验分享吧&#xff0c;1、俺先在mdb数据库中建了一个有自动编号字段的数据表&…

我们能否承担微服务带来的复杂性和运维成本?

坦率地说&#xff0c;并非所有团队都应该&#xff0c;承担微服务带来的复杂性和运维成本。在做出决定前&#xff0c;我们必须进行自我评估。 以下是评估是否能承担微服务成本需要考虑的关键方面&#xff1a; 一、 复杂性带来的挑战 (Complexity Challenges):分布式系统固有复杂…

HCIP--MGRE实验

一、实验拓扑二、配置思路1、建立拓扑&#xff0c;配置IP&#xff0c;配置缺省路由是公网通畅2、路由器R1-R5,R2-R5,R3-R5之间都是串线链接&#xff0c;由于华为路由器默认的串线协议为PPP&#xff0c;因此根据实验要求&#xff0c;R1-R5,R2-R5之间直接进行单向认证&#xff0c…

数字孪生映射探索驱动的具身导航!MorphoNavi:面向对象映射的空地机器人导航

作者&#xff1a; Sausar Karaf, Mikhail Martynov, Oleg Sautenkov, Zhanibek Darush, Dzmitry Tsetserukou单位&#xff1a;俄罗斯斯科尔科沃科学技术研究院智能空间机器人实验室论文标题&#xff1a;MorphoNavi: Aerial-Ground Robot Navigation with Object Oriented Mappi…

统计与大数据分析与数学金融课程解析

CDA数据分析师证书含金量高&#xff0c;适应了未来数字化经济和AI发展趋势&#xff0c;难度不高&#xff0c;行业认可度高&#xff0c;对于找工作很有帮助。一、课程体系对比矩阵维度统计与大数据分析数学金融交叉领域数学基础概率论(90%)随机过程(85%)线性代数(100%)核心工具P…