不容错过!Python列表推导式简明教程

article/2025/10/16 23:17:00

点击 机器学习算法与Python学习选择加星标

精彩内容不迷路

选自towardsdatascience,作者:Benedikt Droste

机器之心编译

列表解析式(List comprehension)或者称为列表推导式,是 Python 中非常强大和优雅的方法。它可以基于现有的列表做一些操作,从而快速创建新列表。在我们第一次见到列表推导式时,可能会感觉这种方法非常炫酷,因此写列表推导式是非常爽的一件事。

什么是列表推导式

如果我们有一个列表,并希望抽取列表中的元素,那么最标准的方法是使用 Python 循环,但是我们也可以直接通过列表推导式,它只需一行代码就能搞定所有操作。当然,抽取列表元素的前提是,我们要理解列表是一种可迭代对象,它允许依次读取不同的元素。

想象一下,如果动物园中有很多不同的动物,每年每一只动物都需要定期体检,那么动物园就是列表。我们可以遍历整个动物园,并依次抽取动物,抽取的动物并不做进一步的处理,直接放到体检列表中。如下所示为一般 Python 循环的做法:

# Creating our animal park
animal_park = [ Rabbit , Rabbit , Rabbit , Rabbit , Cat , Cat , Cat , Cat , Cat , Cat , Cat ,  Turtle , Turtle , Turtle , Turtle , Turtle , Turtle , Turtle ,  Dog , Dog ,  Kangaroo , Kangaroo , Kangaroo , Kangaroo , Kangaroo , Kangaroo ]# Creating a new list for our animal doctor with all animals
animal_doctor = []
for animal in animal_park:animal_doctor.append(animal)

上面的代码很简单,用一个 for 循环就行,它的语义也很容易理解。如下我们可以使用列表推导式重写这一个循环:

animal_doctor = [animal for animal in animal_park]

通过列表推导式,我们将代码量由三行降低到一行。如果对比两者,我们会发现它们其实是一样的,差不多都是创建、遍历和接收三部分。

图1:标准循环与列表推导的对比。

条件语句

这样看起来列表推导式也没什么大不了,但别忘了它还能对元素做进一步操作,例如加个条件语句。在标准的列表循环中,我们的条件语句如下所示会加到 for 循环中。

animal_doctor = []
for animal in animal_park:if animal !=  Dog  and animal !=  Cat :animal_doctor.append(animal)

在列表推导式中,我们可以将条件加到里面,用稍微长一点的单行代码完成整个流程。上面代码块可以等价地表达为:

nimal_doctor = [animal for animal in animal_park if animal !=  Dog  and animal !=  Cat ]

另外非常重要的一点是,列表推导式的速度非常快。如下两者都加了条件语句,但是列表推导式要比一般的循环语句快了 51%。

图2:列表推导与标准循环二者速度的对比。

最后,如果你使用过列表推导式创建新的列表,那么你最好一直使用它,因为我们没有原因再使用标准 Python 循环。我们可以发现,只要明晰了基本概念,那么列表推导式还是非常容易使用的。

原文链接:https://towardsdatascience.com/python-list-comprehension-in-3-minutes-and-3-reasons-why-you-should-use-it-bf398654caf9


  • 你点的每个“在看”,我都认真当成了AI


http://chatgpt.dhexx.cn/article/XPekmUeL.shtml

相关文章

各种列表推导式

推导式的套路 之前我们已经学习了最简单的列表推导式和生成器表达式。但是除此之外,其实还有字典推导式、集合推导式等等。 下面是一个以列表推导式为例的推导式详细格式,同样适用于其他推导式。 variable [out_exp_res for out_exp in input_list if o…

HTMLCSS仿京东详情页静态页面制作总结

目录 1.页面效果 2.页面分析 3.页面制作 (1)产品介绍模块​编辑 (2)产品细节模块​编辑 1.页面效果 接上面 2.页面分析 头部导航栏和底部栏跟前面的大相径庭,这里就不再总结了。 详情页的制作大致分为两个部分&…

php静态页面制作,ps制作静态的html页面

这篇教程是分享ps如何制作静态的html页面方法,教程制作出来的效果还是挺不错的,难度不是很大,喜欢的朋友快快来学习吧 ps是一个强大的修图软件,那你知道其实ps也可以制作html页面吗。小编将告诉你ps如何制作html页面,不…

静态网页制作html语言入门

编辑一个文本文件&#xff0c;代码如下&#xff1b; <!DOCTYPE html> <html> <head> <meta charset"utf-8"> <title> html test1 </title> </head> <body><h1>DDDD</h1><p>PPPPPPPPPPP...</p…

Java Web HTML基础 静态网页制作

文章目录 1.HTML简介2 HTML文档的基本结构3 HTML中的常用标签3.1 文字布局及字体标签3.2 文字设计标签3.3 列表标签4 表格标签4.1 表格基本设计4.2 合并单元格5 链接和图片标签6 表单标签 1.HTML简介 HTML&#xff08;超文本语言&#xff09;是构成网页文档的主要语言&#xf…

静态页面制作—Magnet

利用htmlcss进行制作静态网页制作&#xff0c;熟悉项目制作流程&#xff0c;建立起编写代码习惯。 一、项目分析 1.以下为静态网页的效果图&#xff0c;此文章目的利用htmlcss完成效果图&#xff1b; 2.此页面为三栏式结构&#xff0c;divcss直接进行三栏式布局&#xff1…

一个简单的网页制作期末作业,学生个人html静态网页制作成品代码

&#x1f389;精彩专栏推荐 &#x1f4ad;文末获取联系 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 &#x1f482; 作者主页: 【主页——&#x1f680;获取更多优质源码】 &#x1f393; web前端期末大作业&#xff1a; 【&#x1f4da;毕设项目精品实战案例 (10…

怎么制作html静态页面,如何做静态网页

怎样制作简单的静态的网页设计 欢迎来到CSS布局HTML。首先下载Dreamweaver.exe并打开,选择你使用的编辑语言,本案例用html 打开页面后,选着设计窗口,如图所示。设计窗口可以快速布局网页,不需要自己编辑代码。 打开你要设计的网页的设计图,本经验是百度经验首页为例。 我…

静态网页制作(html+css)、css浮动,练习(网页布局),清除浮动

静态网页代码&#xff08;htmlcss&#xff09; html代码&#xff1a; <!DOCTYPE html> <html><head><meta charset"UTF-8"><title></title><link rel"stylesheet" href"css/整体网页案例.css" />&l…

静态网页制作

记录一下制作网页的过程和其中遇到的问题和解决方法 一、网页样式 二、制作过程 轮播图 实现方法更改图片的src&#xff0c;实现把图片命名为p1.png,p2.png <script>var index1;function lunbo(){index;if(index>2){index1;}var imgdocument.getElementById("…

Javaweb实验:静态网页制作

Javaweb实验&#xff1a; 1.静态网页制作 目录 Javaweb实验&#xff1a; 前言 一、实验目的 二、实验原理 三、实验内容 四、实验步骤 五、实验结果 六、实验内容 七、实验步骤 八、实验结果 九、思考 1、frameset和frame标签的作用是什么&#xff1f; 2、个人主…

前端学习——静态网页制作

前端学习——静态网页制作 1学习内容2. 成果展示 1学习内容 综合运用HTML、CSS知识制作静态网页。 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>京吃食府</title><link rel"styles…

HTML标签img的alt和title属性

在html5 中&#xff0c;title可以在任意HTML标签中使用&#xff0c;厌憎任意元素&#xff0c;但是不一定有效

HTML的img标签的 alt 属性

如果无法显示图像&#xff0c;浏览器将显示替代文本&#xff0c;就像这样&#xff1a; 此外&#xff0c;当用户把鼠标移到图像上方&#xff0c;最新的浏览器会在一个文本框中显示描述性文本。 alt 属性是一个必需的属性&#xff0c;它规定在图像无法显示时的替代文本。 假设由…

CSS的alt:图片无法显示时候显示alt内容

<img src"/i/eg_tulip.jpg" alt"上海鲜花港 - 郁金香" />如果无法显示图像&#xff0c;浏览器将显示替代文本&#xff0c;就像这样&#xff1a;

HTML里img标签里的alt属性解释

我们在写HTML的时候&#xff0c;总会和图像进行交互&#xff0c;所以我们总会看到<img>标签里的alt属性。 很多的解释是&#xff1a;alt 用来在非图形化浏览器中替代图像 感觉很模棱两可&#xff0c;所以总结如下&#xff1a; 如果无法显示图像&#xff0c;浏览器将显…

用div模拟ALT的提示效果

在网页设计过程中经常会用到标签的alt&#xff0c;title提示效果&#xff0c;但往往满足不了要求。昨天一个同事在设计页面时刚好需要用到这种提示效果&#xff0c;我就帮他用div做了一个。 <html><SCRIPT> var innerhtm <div id"showtip" style&quo…

img标签的alt属性和title属性的区别

img的title和alt有什么区别 1.title&#xff1a;通常当鼠标滑动到元素上的时候显示 2.alt&#xff1a;alt是img标签的特有属性&#xff0c;是图片内容的等价描述&#xff0c;用于图片无法正常加载时显示 <div><img src"https://ss1.bdstatic.com/70cFvXSh_Q1Ynx…

css强制样式

在我们日常写代码中&#xff0c;我们偶尔会遇到一个问题&#xff0c;就是我们的样式上不去&#xff0c;明明写了样式就是看不到效果&#xff0c;这时候我们就会检查我们的代码是否写错&#xff0c;但看来看去就是没问题 此时就有可能是我们的样式权重不够这时我们只需要在我们样…

DIV+CSS实现alt属性效果

< head > < meta http-equiv ="Content-Type" content ="text/html; charset=gb2312" > < title > 鼠标提示 </ title > < script language ="JavaScript" > ... function seashowtip(tips,flag,iwidth)...{va…