什么是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写的一个简单监控系统
Jun 19 Python
举例讲解Python中的身份运算符的使用方法
Oct 13 Python
Python生成密码库功能示例
May 23 Python
Python及PyCharm下载与安装教程
Nov 18 Python
Python虚拟环境项目实例
Nov 20 Python
Python内建模块struct实例详解
Feb 02 Python
在Python 中同一个类两个函数间变量的调用方法
Jan 31 Python
Python 3.6打包成EXE可执行程序的实现
Oct 18 Python
python 实现多线程下载视频的代码
Nov 15 Python
Python终端输出彩色字符方法详解
Feb 11 Python
django实现将修改好的新模型写入数据库
Mar 31 Python
python实现将中文日期转换为数字日期
Jul 14 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遍历文件夹与子目录的函数代码
2011/09/26 PHP
Thinkphp 5.0实现微信企业付款到零钱
2018/09/30 PHP
thinkphp5 + ajax 使用formdata提交数据(包括文件上传) 后台返回json完整实例
2020/03/02 PHP
JavaScript 原型学习总结
2010/10/29 Javascript
Jquery 绑定时间实现代码
2011/05/03 Javascript
jQuery选择器全面总结
2014/01/06 Javascript
jQuery实现div随意拖动的实例代码(通用代码)
2016/01/28 Javascript
JavaScript实现设计模式中的单例模式的一些技巧总结
2016/05/17 Javascript
JS操作JSON方法总结(推荐)
2016/06/14 Javascript
Nodejs全局安装和本地安装的不同之处
2016/07/04 NodeJs
JS之获取样式的简单实现方法(推荐)
2016/09/13 Javascript
jQuery tagsinput在h5邮件客户端中应用详解
2016/09/26 Javascript
深入理解js中的加载事件
2017/02/08 Javascript
Three.js利用性能插件stats实现性能监听的方法
2017/09/25 Javascript
Vue.js 的移动端组件库mint-ui实现无限滚动加载更多的方法
2017/12/23 Javascript
vue cli构建的项目中请求代理与项目打包问题
2018/02/26 Javascript
使用Angular CLI从蓝本生成代码详解
2018/03/24 Javascript
Vue-cli配置打包文件本地使用的教程图解
2018/08/02 Javascript
VUE简单的定时器实时刷新的实现方法
2019/01/20 Javascript
ES6 Class中实现私有属性的一些方法总结
2019/07/08 Javascript
Vue项目前后端联调(使用proxyTable实现跨域方式)
2020/07/18 Javascript
python+matplotlib绘制旋转椭圆实例代码
2018/01/12 Python
Python 在字符串中加入变量的实例讲解
2018/05/02 Python
对Python字符串中的换行符和制表符介绍
2018/05/03 Python
numpy.linspace 生成等差数组的方法
2018/07/02 Python
在pandas多重索引multiIndex中选定指定索引的行方法
2018/11/16 Python
Python列表元素常见操作简单示例
2019/10/25 Python
python 用 xlwings 库 生成图表的操作方法
2019/12/22 Python
django迁移文件migrations的实现
2020/03/31 Python
在jupyter notebook中调用.ipynb文件方式
2020/04/14 Python
自荐信不宜过于夸大
2013/11/06 职场文书
员工年终演讲稿
2014/01/03 职场文书
大学开学计划书
2014/04/30 职场文书
学校领导班子四风对照检查材料
2014/09/27 职场文书
导游词之南迦巴瓦峰
2019/11/19 职场文书
python之np.argmax()及对axis=0或者1的理解
2021/06/02 Python