什么是python的列表推导式
作者:silencement 发布时间:2023-03-11 03:06:02
乍一看到列表推导式你可能会感到疑惑。它们是一种创建和使用列表的简洁方式。理解列表推导式是有用的,因为你可能在其他人的代码里看到列表推导式。下面来了解下列表推导式吧。
数字列表的推导式
回顾之前学过的知识,我们可以创建一个包含前10个数字的列表,如下所示:
squares = []
for number in range(1,11):
new_square = number**2
squares.append(new_square)
for square in squares:
print(square)
上述代码中我们实现了创建包含10个数字的列表,对每个数字作平方操作并将它们存储进新的数组的功能。代码略显冗长,我们可以省略 for 循环中的 new_square 参数,简化代码。使用列表推导式就可以进一步简化代码,如下所示:
squares = [number**2 for number in range(1,11)]
for square in squares:
print(square)
平方操作和生成新列表的过程都浓缩进了一行代码。你是不是已经晕头转向了,让我们来看看这行代码发生了什么。
首先我们定义了一个列表,名字为 squares 。
接下来看看列表中括号中的代码:
for number in range(1, 11)
它在1-10之间创建一个循环,把每个数字存储到变量 number 中。接下来我们看一看对每次循环中的 number 作了哪些操作。
number**2
每个 number 都作了平方操作,并将结果存储在了定义好的队列中。我们可以用如下语言来阅读这行代码:
squares = [raise number to the second power, for each number in the range 1-10]
其他例子
上个例子是对数字作平方操作,下列代码是对数字作乘操作,仔细阅读代码,体会数字列表表达式的用法。
# Make an empty list that will hold the even numbers.
evens = []
# Loop through the numbers 1-10, double each one, and add it to our list.
for number in range(1,11):
evens.append(number*2)
# Show that our list is correct:
for even in evens:
print(even)
非数字列表的推导式
我们也可以在非数字列表中运用推导式。在下面的例子中,我们会创建一个非数字列表,然后利用推导式生成一个新的列表。不运用推导式的源代码如下所示:
# Consider some students.
students = ['bernice', 'aaron', 'cody']
# Let's turn them into great students.
great_students = []
for student in students:
great_students.append(student.title() + " the great!")
# Let's greet each great student.
for great_student in great_students:
print("Hello, " + great_student)
我们想写下如下所示的推导式:
great_students = [add 'the great' to each student, for each student in the list of students]
代码如下所示:
# Consider some students.
students = ['bernice', 'aaron', 'cody']
# Let's turn them into great students.
great_students = [student.title() + " the great!" for student in students]
# Let's greet each great student.
for great_student in great_students:
print("Hello, " + great_student)
扩展练习:
生成一个[[1,2,3],[4,5,6]....]的列表最大值在100以内
首先考虑一下正常情况我们应该怎么写
a = []
for x in range(1,100,3):
a.append([x,x+1,x+2])
然后再把它转换成列表推导式
a = [[x,x+1,x+2] for x in range(1,100,3)]
来源:https://www.py.cn/jishu/jichu/10341.html


猜你喜欢
- 在工作中碰到这么一个问题:给定一个已经排序的数组(升序),删除数组中重复的数据,但是只能使用一个数组,这个数组的大小可以变化. 例子:&nb
- 远程服务器配置可以使得数据库管理员在服务器以外的主机上连接到一个SQL Server实例,以便管理员在没有建立单据连接的情况下在其他的SQL
- 本文章来为各位介绍一个python的例子,这个就是bootstrap+flask写登录页面的例子,希望文章能够对各位有所帮助。Flask是一
- 最近小编思维发散“Visual Studio可以集成chatgpt吗?”,这样不就可以让chatgp
- 将数据库中的数据保存在excel文件中有很多种方法,这里主要介绍pyExcelerator的使用。一、前期准备(不详细介绍MySQL)pyt
- 本文实例讲述了Python常用模块之requests模块用法。分享给大家供大家参考,具体如下:一. GET请求1.访问一个页面import
- 系列目录:1. 服务器XMLHTTP(Server XMLHTTP in ASP)基础2. 
- 在安装wordpress的时候,按照里面的readme.html的步骤进行安装,但是在访问wp-admin/install.php的时候就出
- 互联网的真正算得上成功的产品屈指可数,每年都有成千上万个新网站出现,同时也有成千上万的网站死去,而那些算得上成功的产品,无不是从这些尸骨堆里
- 注:本文是应Alan邀请为《CSS布局实录》写的一个web标准入门指导。书已经上市近一年了,现在摘选出来,给初学者一个参考。希望了解更多实现
- 在上一章我们学习了 异常的三个关键字,分别是try、except 以及 finally。我们知道在 try 代码块中如果遇到错误就会抛出异常
- 木马原理:入侵者使用诸如ASP图片木马生成器之类的工具将一张正常的图片与一个ASP木马文件合并成一个图片文件(即将对网站有害的ASP代码插在
- 何为共线性:共线性问题指的是输入的自变量之间存在较高的线性相关度。共线性问题会导致回归模型的稳定性和准确性大大降低,另外,过多无关的维度计算
- 最近了解了下repaint和reflow的相关知识,觉得在页面重构过程中就应该考虑前端开发(js)人员对dom进行操作,能够减轻客户浏览器的
- 本文实例为大家分享了python半自动化发送微信信息的具体代码,供大家参考,具体内容如下相关第三方库1.pyautogui自动操作鼠标、键盘
- 测试字符串:<style>v\:* { BEHAVIOR: url(#default#VML) } o\:* { BEHAVIO
- 继续我们的 Javascript 优化计划,上期已经做到怎么尽可能的缩小 Javascript 脚本的文件体积便于传输。不过这样做仅仅是不够
- 平时写的一些 Python 的代码,需要在其他模块里面复用。最粗狂的方法就是直接 copy 过去。但这种方式太麻烦,copy 一堆代码,导致
- 我们的网络协议一般是把数据转换成JSON之后再传输。之前在Java里面,实现序列化和反序列化,不管是 jackson ,还是 fastjso
- 1.静态加载 CSS,图片资源文件在页面渲染过程中可以并行下载,不会阻塞。在IE8,FF下,也可以支持JS的并行下载。尽管页面的JS下载加速