什么是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中使用smtplib和email模块发送邮件实例
Apr 22 Python
在Python中使用CasperJS获取JS渲染生成的HTML内容的教程
Apr 09 Python
python使用range函数计算一组数和的方法
May 07 Python
Python实现简单网页图片抓取完整代码实例
Dec 15 Python
PyQt5每天必学之进度条效果
Apr 19 Python
python批量赋值操作实例
Oct 22 Python
浅析Python 实现一个自动化翻译和替换的工具
Apr 14 Python
python pandas生成时间列表
Jun 29 Python
python爬虫之遍历单个域名
Nov 20 Python
Python3并发写文件与Python对比
Nov 20 Python
python logging模块的使用
Sep 07 Python
python tqdm实现进度条的示例代码
Nov 10 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
phpExcel中文帮助手册之常用功能指南
2014/08/18 PHP
thinkphp数据查询和遍历数组实例
2014/11/28 PHP
php页面跳转session cookie丢失导致不能登录等问题的解决方法
2016/12/12 PHP
js form 验证函数 当前比较流行的错误提示
2009/06/23 Javascript
javascript通过className来获取元素的简单示例代码
2014/01/10 Javascript
JS下载文件|无刷新下载文件示例代码
2014/04/17 Javascript
JavaScript中利用各种循环进行遍历的方式总结
2015/11/10 Javascript
Angular中$compile源码分析
2016/01/28 Javascript
AngularJS基础 ng-init 指令简单示例
2016/08/02 Javascript
微信小程序 网络API Websocket详解
2016/11/09 Javascript
JS中Attr的用法详解
2017/10/09 Javascript
Angular4实现图片上传预览路径不安全的问题解决
2017/12/25 Javascript
浅谈HTTP 缓存的那些事儿
2018/10/17 Javascript
JavaScript闭包与作用域链实例分析
2019/01/21 Javascript
[02:38]DOTA2超级联赛专访Loda 认为IG世界最强
2013/05/27 DOTA
[46:55]LGD vs Liquid 2019国际邀请赛小组赛 BO2 第一场 8.16
2019/08/19 DOTA
在Python上基于Markov链生成伪随机文本的教程
2015/04/17 Python
python3大文件解压和基本操作
2017/12/15 Python
Python生成任意范围任意精度的随机数方法
2018/04/09 Python
python2使用bs4爬取腾讯社招过程解析
2019/08/14 Python
python实现视频读取和转化图片
2019/12/10 Python
django框架中间件原理与用法详解
2019/12/10 Python
django admin 根据choice字段选择的不同来显示不同的页面方式
2020/05/13 Python
使用SQLAlchemy操作数据库表过程解析
2020/06/10 Python
MyBag中文网:英国著名的时尚包袋电商零售网站
2020/07/31 全球购物
shell程序中如何注释
2012/02/17 面试题
实用求职信范文分享
2013/12/25 职场文书
投标承诺书怎么写
2014/05/24 职场文书
2014年政府采购工作总结
2014/12/09 职场文书
公务员政审材料范文
2014/12/23 职场文书
倡议书作文
2015/01/19 职场文书
2015年高考寄语或鼓励的话
2015/03/23 职场文书
原来实习报告是这样写的呀!
2019/07/03 职场文书
基于python的matplotlib制作双Y轴图
2021/04/20 Python
用golang如何替换某个文件中的字符串
2021/04/25 Golang
总结Python常用的魔法方法
2021/05/25 Python