什么是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求pi的方法
Oct 08 Python
Python实现抓取百度搜索结果页的网站标题信息
Jan 22 Python
Python字符串特性及常用字符串方法的简单笔记
Jan 04 Python
python3中bytes和string之间的互相转换
Feb 09 Python
在Python的一段程序中如何使用多次事件循环详解
Sep 07 Python
Python使用pyodbc访问数据库操作方法详解
Jul 05 Python
Django框架实现的分页demo示例
May 25 Python
python aiohttp的使用详解
Jun 20 Python
django中的图片验证码功能
Sep 18 Python
Python模拟FTP文件服务器的操作方法
Feb 18 Python
python模拟点击网页按钮实现方法
Feb 25 Python
Python使用Excel将数据写入多个sheet
May 16 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脚本使WordPress的主题支持Widget侧边栏
2015/12/14 PHP
浅谈PHP array_search 和 in_array 函数效率问题
2019/10/15 PHP
Locate a File Using a File Open Dialog Box
2007/06/18 Javascript
动态创建的表格单元格中的事件实现代码
2008/12/30 Javascript
js 控制下拉菜单刷新的方法
2013/03/03 Javascript
javascript随机之洗牌算法深入分析
2014/06/07 Javascript
JavaScript中用toString()方法返回时间为字符串
2015/06/12 Javascript
jQuery在线选座位插件seat-charts特效代码分享
2015/08/27 Javascript
牛叉的Jquery——Jquery与DOM对象的互相转换及DOM的三种操作
2015/10/29 Javascript
AngularJS中如何使用$parse或$eval在运行时对Scope变量赋值
2016/01/25 Javascript
javascript每日必学之循环
2016/02/19 Javascript
浅谈react+es6+webpack的基础配置
2017/08/09 Javascript
vue引入ueditor及node后台配置详解
2018/01/03 Javascript
基于 D3.js 绘制动态进度条的实例详解
2018/02/26 Javascript
原生JS进行前后端同构
2018/04/22 Javascript
微信小程序实现人脸检测功能
2018/05/25 Javascript
vue添加axios,并且指定baseurl的方法
2018/09/19 Javascript
JavaScript页面加载事件实例讲解
2019/09/01 Javascript
js全屏事件fullscreenchange 实现全屏、退出全屏操作
2019/09/17 Javascript
JS如何生成随机验证码
2020/03/02 Javascript
vuex入门最详细整理
2020/03/04 Javascript
Openlayers学习之加载鹰眼控件
2020/09/28 Javascript
python基础_文件操作实现全文或单行替换的方法
2017/09/04 Python
Python实现打印螺旋矩阵功能的方法
2017/11/21 Python
Python第三方库h5py_读取mat文件并显示值的方法
2019/02/08 Python
Python综合应用名片管理系统案例详解
2020/01/03 Python
浅谈tensorflow之内存暴涨问题
2020/02/05 Python
Keras Convolution1D与Convolution2D区别说明
2020/05/22 Python
pycharm配置QtDesigner的超详细方法
2021/01/25 Python
HTML5中如何显示视频呢 HTML5视频播放demo
2013/06/08 HTML / CSS
SQL中where和having的区别
2012/06/17 面试题
自我评价是什么
2014/01/04 职场文书
婚礼司仪主持词
2014/03/14 职场文书
2014基建处领导班子“四风”对照检查材料思想汇报
2014/10/04 职场文书
教师业务学习材料
2014/12/16 职场文书
AJAX学习笔记
2021/05/18 Javascript