【Python】 列表解析 语法 实例展示 说明统统一顿明白!!!

列表解析

根据已有列表,高效创建新列表的方式。

列表解析是Python迭代机制的一种应用,它常用于实现创建新的列表,因此用在[]中。

语法:

[expression for iter_val in iterable]

[expression for iter_val in iterable if cond_expr]

实例展示:

 1 要求:列出1~10所有数字的平方2 ####################################################3 1、普通方法:4 >>> L = \[\]5 >>> for i in range(1,11):6 ...     L.append(i\*\*2)7 ... 8 >>> print L9 \[1, 4, 9, 16, 25, 36, 49, 64, 81, 100\]
10 ####################################################
11 2、列表解析
12 >>>L = \[ i\*\*2 for i in range(1,11)\]
13 >>>print L
14 \[1, 4, 9, 16, 25, 36, 49, 64, 81, 100\]
 1 要求:列出1~10中大于等于4的数字的平方2 ####################################################3 1、普通方法:4 >>> L = \[\]5 >>> for i in range(1,11):6 ...     if i >= 4:7 ...         L.append(i\*\*2)8 ... 9 >>> print L
10 \[16, 25, 36, 49, 64, 81, 100\]
11 ####################################################
12 2、列表解析
13 >>>L = \[ i\*\*2 for i in range(1,11) if i >= 4 \]
14 >>>print L
15 \[16, 25, 36, 49, 64, 81, 100\]
 1 要求:列出1~10所有数字的平方除以2的值2 ####################################################3 1、普通方法4 >>> L = \[\]5 >>> for i in range(1,11):6 ...     L.append(i\*\*2/2)7 ... 8 >>> print L9 \[0, 2, 4, 8, 12, 18, 24, 32, 40, 50\]
10 ####################################################
11 2、列表解析
12 >>> L = \[i\*\*2/2 for i in range(1,11) \]
13 >>> print L
14 \[0, 2, 4, 8, 12, 18, 24, 32, 40, 50\]
 1 要求:列出"/var/log"中所有已'.log'结尾的文件2 ##################################################3 1、普通方法4 >>>import os5 >>>file = \[\]6 >>> for file in os.listdir('/var/log'):7 ...     if file.endswith('.log'):8 ...         file.append(file)9 ... 
10 >>> print file
11 \['anaconda.ifcfg.log', 'Xorg.0.log', 'anaconda.storage.log', 'Xorg.9.log', 'yum.log', 'anaconda.log', 'dracut.log', 'pm-powersave.log', 'anaconda.yum.log', 'wpa\_supplicant.log', 'boot.log', 'spice-vdagent.log', 'anaconda.program.log'\]
12 ##################################################
13 2.列表解析
14 >>> import os
15 >>> file = \[ file for file in os.listdir('/var/log') if file.endswith('.log') \]
16 >>> print file
17 \['anaconda.ifcfg.log', 'Xorg.0.log', 'anaconda.storage.log', 'Xorg.9.log', 'yum.log', 'anaconda.log', 'dracut.log', 'pm-powersave.log', 'anaconda.yum.log', 'wpa\_supplicant.log', 'boot.log', 'spice-vdagent.log', 'anaconda.program.log'\]
 1 要求:实现两个列表中的元素逐一配对。2 1、普通方法:3 >>> L1 = \['x','y','z'\]4 >>> L2 = \[1,2,3\]      5 >>> L3 = \[\]6 >>> for a in L1:7 ...     for b in L2:8 ...         L3.append((a,b))9 ... 
10 >>> print L3
11 \[('x', 1), ('x', 2), ('x', 3), ('y', 1), ('y', 2), ('y', 3), ('z', 1), ('z', 2), ('z', 3)\]
12 ####################################################
13 2、列表解析:
14 >>> L1 = \['x','y','z'\]
15 >>> L2 = \[1,2,3\]
16 L3 = \[ (a,b) for a in L1 for b in L2 \]
17 >>> print L3
18 \[('x', 1), ('x', 2), ('x', 3), ('y', 1), ('y', 2), ('y', 3), ('z', 1), ('z', 2), ('z', 3)\]
1 使用列表解析生成 9\*9 乘法表
2 
3 print('\\n'.join(\[''.join(\['%s\*%s=%-2s '%(y,x,x\*y)for y in range(1,x+1)\])for x in range(1,10)\]))

说明:

以上实例,使用列表解析比使用普通方法的速度几乎可以快1倍。因此推荐使用列表解析。

​最后,如果你也想自学Python,可以关注我。

我还整理出了一套系统的学习路线,这套资料涵盖了诸多学习内容: 【点击这里】领取!

包括:Python激活码+安装包、Python web开发,Python爬虫,Python数据分析,人工智能、自动化办公等学习教程。带你从零基础系统性的学好Python!开发工具,基础视频教程,项目实战源码,51本电子书籍,100道练习题等。相信可以帮助大家在最短的时间内,能达到事半功倍效果,用来复习也是非常不错的。
在这里插入图片描述

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

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

相关文章

代码注释,是程序员的美德还是无能的表现?

前言 嗨,大家好! 今天咱们来聊聊一个老生常谈但又永远不过时的话题 —— 代码注释。 你是不是也经历过这样的时刻:打开一段陌生的代码,就像进入了迷宫一样找不到北?这时候,一个好的注释简直就是你的指路…

飞机大战ai通过dqn实现

借鉴 飞机大战源码 github 王者荣耀ai训练(试了一下,发现电脑带不动,就改了一点,训练其他游戏) 源码 通过网盘分享的文件:PlaneWar (2).zip [链接](https://pan.baidu.com/s/1N4OorR7b36Zml8MadGmI6g?pwd1234&#xf…

第十六章 RabbitMQ延迟消息之延迟插件优化

目录 一、引言 二、优化方案 三、核心代码实现 3.1. 生产者代码 3.2. 消息处理器 3.3. 自定义多延迟消息封装类 3.4. 订单实体类 3.5. 消费者代码 四、运行效果 一、引言 上一章节我们提到,直接使用延迟插件,创建一个延迟指定时间的消息&…

晶体匹配测试介绍

一、晶体参数介绍 晶体的电气规格相对比较简单,如下: 我们逐一看看每个参数, FL就是晶体的振动频率,这个晶体是24.576MHz的。 CL就是负载电容,决定了晶体频率是否准确,包括外接的实际电容、芯片的等效电容以及PCB走线的寄生电容等,核心参数。 Frequency Tolerance是…

堆排序(C++实现)

参考: 面试官:请写一个堆排序_哔哩哔哩_bilibiliC实现排序算法_c从小到大排序-CSDN博客 堆的基本概念 堆排实际上是利用堆的性质来进行排序。堆可以看做一颗完全二叉树。 堆分为两类: 最大堆(大顶堆):除根…

Deep tone mapping network in HSV color space

Abstract 色调映射算子可以将高动态范围(HDR)图像转换为低动态范围(LDR)图像,这样我们就可以用LDR设备享受HDR图像的信息内容。然而,目前的色调映射算法主要关注亮度映射,而忽略了颜色分量。与此同时,它们经常遭受光晕伪影和过度…

IaaS,PaaS和SaaS的区别讲解

IaaS、PaaS和SaaS有什么区别吗?这三个概念非常简单。 只不过在说它们仨的区别前,有个常识需要知道一下: 我们传统开发一个软件,需要9个东西: 作为使用软件的人,左边的【应用】和【数据】,是离…

Django的请求与响应

Django的请求与响应 1、常见的请求2、常见的响应3、案例 1、常见的请求 函数的参数request是一个对象,封装了用户发送过来的所有请求相关数据。 get请求一般用来请求获取数据,get请求也可以传参到后台,但是传递的参数显示在地址栏。 post请求…

企业内部文档安全外发如何挑选合适的外发系统?

企业文档的外发不仅关系到运营效率,更是信息安全的重要组成部分。面对B2B模式下文档交换的普遍性和重要性,企业内部文档的安全外发成为了众多公司关注的重点之一。 随着互联网技术的发展,企业之间的合作越来越紧密,文档的交流也变…

Java Agent 技术解析

什么是Java Agent Java Agent是在 JDK1.5 引入的一种可以动态修改 Java 字节码的技术。Java 类编译之后形成字节码被 JVM 执行,在 JVM 在执行这些字节码之前获取这些字节码信息,并且通过字节码转换器对这些字节码进行修改,来完成一些额外的功…

第十四章:收尾过程组(14.1结束项目或阶段--14.2收尾过程组重点工作)

14.1 结束项目或阶段 过程定义:终结项目、阶段或合同的所有活动的过程 14.1.1 主要输入 1.项自章程 项目章程记录了项目成功标准、审批要求,以及由谁来签署项目结束 2.项目管理计划 项目管理计划的所有组成部分均为结束项目或阶段过程的输入。 3.项…

【视觉分割新SOTA|论文解读1】一种最先进的图像分割模型——Segment Anything Model (SAM)

【视觉分割新SOTA|论文解读1】一种最先进的图像分割模型——Segment Anything Model (SAM) 【视觉分割新SOTA|论文解读1】一种最先进的图像分割模型——Segment Anything Model (SAM) 文章目录 【视觉分割新SOTA|论文解读1】一种最先进的图像分割模型——Segment Anything Mod…

全院级、流程化的医院安全不良事件管理系统源码——等级医院评审工作的辅助工具

前言: 冰山理论”指出“每件严重不良事件背后可能隐藏着10件轻微的不良事件”“存在30件未造成伤害的差错可能存在600件引发意外的异常事件”没有一件不良事件应该被忽视! 一项研究也指出95%医生曾目睹错误的发生,61%的医务人员认为医疗错误…

基于Python星载气溶胶数据处理与反演分析技术

MODIS(中分辨率成像光谱仪)和CALIOP(云-气溶胶偏振激光雷达)是两种重要的星载遥感观测平台,它们提供了大量的气溶胶数据。MODIS通过成像光谱技术获取不同波长的遥感数据,从而得到气溶胶的空间分布、光学厚度…

耳夹式耳机哪个最好?2024年五大热门耳夹式耳机品牌分享

耳夹式耳机哪个最好?2024年五大热门耳夹式耳机品牌分享 耳夹式蓝牙耳机怎样才算好、算优质呢?哪款比较好呢?对于第一个问题,我认为耳夹式蓝牙耳机得具备以下几个特征优势才称得上是优质产品。其一,要能提供清晰、平衡…

nuxtjs使用rem 实现自适应窗口的大小

效果图: 步骤 1:安装 PostCSS 和 PostCSS 插件 npm install postcss postcss-pxtorem --save-dev步骤 2:配置 nuxt.config.ts // nuxt.config.ts export default defineNuxtConfig({compatibilityDate: 2024-04-03,devtools: { enabled: …

本地windows文件上传到远程阿里云windows server方法

一.功能简介 在本地windows下开发完成软件后,需要上传到远程阿里云服务器进行发布,可使用该方法,快速实现本地文件上传。 二.方法 在本地windows系统使用快捷键 winR,打开运行对话框,‌通过这个对话框,用…

解决Windows Server 2016本地登录失败但远程登录正常的问题:排查与解决方案

✅作者简介:2022年博客新星 第八。热爱国学的Java后端开发者,修心和技术同步精进。 🍎个人主页:Java Fans的博客 🍊个人信条:不迁怒,不贰过。小知识,大智慧。 💞当前专栏…

2024VDC蓝河分会场:蓝河操作系统2 全栈自研 为AI而生

10月10日, 以“同心同行”为主题的2024vivo开发者大会在深圳成功举办,在同期举办的蓝河分会场上,vivo多位专家及产业界、学术界伙伴分享了在AGI时代下,蓝河操作系统带来的技术创新与实践,vivo希望携各方共建生态&#…

Monad 101 杭州线下活动:解锁创新技术,引领低成本高效 DApp 开发之路!

以太坊等区块链在处理传统金融大规模交易时面临巨大挑战,有限的可扩展性成为阻碍其广泛应用的主要瓶颈。为了解决这一难题,并缩小传统金融与去中心化金融(DeFi)之间的差距,Keone 创立了 Monad。通过显著提升交易速度和…