什么是python的列表推导式


Posted in Python onMay 26, 2020

乍一看到列表推导式你可能会感到疑惑。它们是一种创建和使用列表的简洁方式。理解列表推导式是有用的,因为你可能在其他人的代码里看到列表推导式。下面来了解下列表推导式吧。

数字列表的推导式

回顾之前学过的知识,我们可以创建一个包含前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)]

以上就是什么是python的列表推导式的详细内容,更多关于python列表推导式的含义及用法的资料请关注三水点靠木其它相关文章!

Python 相关文章推荐
python中将字典转换成其json字符串
Jul 16 Python
Python装饰器的函数式编程详解
Feb 27 Python
Python实现的建造者模式示例
Aug 06 Python
Python 中的lambda函数介绍
Oct 10 Python
使用Python编写Prometheus监控的方法
Oct 15 Python
Django使用unittest模块进行单元测试过程解析
Aug 02 Python
Python Handler处理器和自定义Opener原理详解
Mar 05 Python
python函数中将变量名转换成字符串实例
May 11 Python
Python定义一个函数的方法
Jun 15 Python
python rsa-oaep加密的示例代码
Sep 23 Python
教你怎么用Python实现多路径迷宫
Apr 29 Python
Python+Tkinter打造签名设计工具
Apr 01 Python
python中列表的含义及用法
May 26 #Python
初学者学习Python好还是Java好
May 26 #Python
python函数map()和partial()的知识点总结
May 26 #Python
Python selenium使用autoIT上传附件过程详解
May 26 #Python
Python的历史与优缺点整理
May 26 #Python
python实现逢七拍腿小游戏的思路详解
May 26 #Python
Python是什么 Python的用处
May 26 #Python
You might like
php的array数组和使用实例简明教程(容易理解)
2014/03/20 PHP
php的crc32函数使用时需要注意的问题(不然就是坑)
2015/04/21 PHP
php实现微信企业号支付个人的方法详解
2017/07/26 PHP
php使用ftp实现文件上传与下载功能
2017/07/21 PHP
JavaScript 克隆数组最简单的方法
2009/02/12 Javascript
JavaScript 学习笔记(九)call和apply方法
2010/01/11 Javascript
EasyUI的treegrid组件动态加载数据问题的解决办法
2011/12/11 Javascript
jquery zTree异步加载简单实例分享
2013/02/05 Javascript
JS保存、读取、换行、转Json报错处理方法
2013/06/14 Javascript
JavaScript自定义事件介绍
2013/08/29 Javascript
jquery进行数组遍历如何跳出当前的each循环
2014/06/05 Javascript
jquery获取点击控件的绝对位置简单实例
2016/10/13 Javascript
使用base64对图片的二进制进行编码并用ajax进行显示
2017/01/03 Javascript
jQuery图片拖动组件Dropzone用法示例
2017/01/17 Javascript
javascript实现秒表计时器的制作方法
2017/02/16 Javascript
vue 指定组件缓存实例详解
2018/04/01 Javascript
js实现京东秒杀倒计时功能
2019/01/21 Javascript
ES6 Object.assign()的用法及其使用
2020/01/18 Javascript
Python时间戳与时间字符串互相转换实例代码
2013/11/28 Python
使用PDB模式调试Python程序介绍
2015/04/05 Python
深入Python函数编程的一些特性
2015/04/13 Python
实例讲解python中的序列化知识点
2018/10/08 Python
Python中使用logging和traceback模块记录日志和跟踪异常
2019/04/09 Python
PyQt4实时显示文本内容GUI的示例
2019/06/14 Python
python使用yield压平嵌套字典的超简单方法
2019/11/02 Python
TensorFlow2.1.0安装过程中setuptools、wrapt等相关错误指南
2020/04/08 Python
Python实时监控网站浏览记录实现过程详解
2020/07/14 Python
使用python画出逻辑斯蒂映射(logistic map)中的分叉图案例
2020/12/11 Python
英国护肤品购物网站:Beauty Expert
2016/08/19 全球购物
英国最大的在线奢侈手表零售商:Jura Watches
2018/01/29 全球购物
舒适的豪华鞋:Taryn Rose
2018/05/03 全球购物
美国职棒大联盟的官方手套、球和头盔:Rawlings
2020/02/15 全球购物
什么是求职信?求职信应包含哪些内容?
2019/08/14 职场文书
如何用JavaScript学习算法复杂度
2021/04/30 Javascript
基于Redis过期事件实现订单超时取消
2021/05/08 Redis
Win11显卡控制面板打开显卡设置方法
2022/04/20 数码科技