什么是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 模板引擎的注入问题分析
Jan 01 Python
Python+Turtle动态绘制一棵树实例分享
Jan 16 Python
python使用socket创建tcp服务器和客户端
Apr 12 Python
python爬虫获取新浪新闻教学
Dec 23 Python
对Python3 pyc 文件的使用详解
Feb 16 Python
Python中一般处理中文的几种方法
Mar 06 Python
Python Excel处理库openpyxl使用详解
May 09 Python
python实现邮件自动发送
Aug 10 Python
用pytorch的nn.Module构造简单全链接层实例
Jan 14 Python
Django filter动态过滤与排序实现过程解析
Nov 26 Python
python中%格式表达式实例用法
Jun 18 Python
Python实现查询剪贴板自动匹配信息的思路详解
Jul 09 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开发制作一个简单的活动日程表Calendar
2016/06/20 PHP
PHP数据分析引擎计算余弦相似度算法示例
2017/08/08 PHP
JQuery 技巧和窍门整理(8个)
2010/04/22 Javascript
关于javascript中this关键字(翻译+自我理解)
2010/10/20 Javascript
基于json的jquery地区联动效果代码
2011/07/06 Javascript
使用iframe window的scroll方法控制iframe页面滚动
2014/03/05 Javascript
浅析node.js中close事件
2014/11/26 Javascript
原生JavaScript编写俄罗斯方块
2015/03/30 Javascript
JQuery 两种方法解决刚创建的元素遍历不到的问题
2016/04/13 Javascript
JS实现图文并茂的tab选项卡效果示例【附demo源码下载】
2016/09/21 Javascript
详解使用路由延迟加载 Angular 模块
2017/10/12 Javascript
jquery+css3实现熊猫tv导航代码分享
2018/02/12 jQuery
对angularJs中自定义指令replace的属性详解
2018/10/09 Javascript
深入理解es6块级作用域的使用
2019/03/28 Javascript
微信小程序转发事件实现解析
2019/10/22 Javascript
解决antd Form 表单校验方法无响应的问题
2020/10/27 Javascript
python轻松查到删除自己的微信好友
2016/01/10 Python
python使用正则表达式替换匹配成功的组并输出替换的次数
2017/11/22 Python
python命令行解析之parse_known_args()函数和parse_args()使用区别介绍
2018/01/24 Python
Python多层装饰器用法实例分析
2018/02/09 Python
Python生成任意范围任意精度的随机数方法
2018/04/09 Python
Python微医挂号网医生数据抓取
2019/01/24 Python
在Python中使用Neo4j的方法
2019/03/14 Python
Python简易版图书管理系统
2019/08/12 Python
Python loguru日志库之高效输出控制台日志和日志记录
2020/03/07 Python
python实现人机五子棋
2020/03/25 Python
python爬虫如何解决图片验证码
2021/02/14 Python
详解Canvas实用库Fabric.js使用手册
2019/01/07 HTML / CSS
墨西哥运动服饰和鞋网上商店:Netshoes墨西哥
2016/07/28 全球购物
英国领先的家庭时尚品牌:Peacocks
2018/01/11 全球购物
简历的自我评价范文
2014/02/04 职场文书
优秀班主任材料
2014/12/16 职场文书
教师节获奖感言
2015/07/31 职场文书
党员干部学习心得体会
2016/01/23 职场文书
用Python写一个简易版弹球游戏
2021/04/13 Python
MySQL库表太大怎么办? 数据库分库分表项目实践
2022/04/11 MySQL