什么是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实现QQ游戏大家来找茬辅助工具
Sep 14 Python
用Python实现一个简单的线程池
Apr 07 Python
Python中random模块用法实例分析
May 19 Python
Python中线程编程之threading模块的使用详解
Jun 23 Python
matplotlib在python上绘制3D散点图实例详解
Dec 09 Python
python中set()函数简介及实例解析
Jan 09 Python
浅谈Pandas中map, applymap and apply的区别
Apr 10 Python
Python 打印中文字符的三种方法
Aug 14 Python
Python selenium根据class定位页面元素的方法
Feb 26 Python
计算机二级python学习教程(3) python语言基本数据类型
May 16 Python
python 日期排序的实例代码
Jul 11 Python
python中dict使用方法详解
Jul 17 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将向Java靠拢
2006/10/09 PHP
解析php curl_setopt 函数的相关应用及介绍
2013/06/17 PHP
PHP中把对象数组转换成普通数组的方法
2015/07/10 PHP
PHP中PDO的事务处理分析
2016/04/07 PHP
PHP实现留言板功能的详细代码
2017/03/25 PHP
实例分析javascript中的call()和apply()方法
2014/11/28 Javascript
AngularJS入门教程(一):静态模板
2014/12/06 Javascript
js实现键盘上下左右键选择文字并显示在文本框的方法
2015/05/07 Javascript
JavaScript中的prototype原型学习指南
2016/05/09 Javascript
用AngularJS的指令实现tabs切换效果
2016/08/31 Javascript
Vuejs 组件——props数据传递的实例代码
2017/03/07 Javascript
Easyui和zTree两种方式分别实现树形下拉框
2017/08/04 Javascript
webpack external模块的具体使用
2018/03/10 Javascript
新手入门js闭包学习过程解析
2019/10/08 Javascript
vue 使用外部JS与调用原生API操作示例
2019/12/02 Javascript
基于JavaScript的数据结构队列动画实现示例解析
2020/08/06 Javascript
[02:13] 完美世界DOTA2联赛PWL DAY5集锦
2020/11/03 DOTA
利用python程序生成word和PDF文档的方法
2017/02/14 Python
详解如何利用Cython为Python代码加速
2018/01/27 Python
python写入已存在的excel数据实例
2018/05/03 Python
如何使用python爬虫爬取要登陆的网站
2019/07/12 Python
详解Python的三种拷贝方式
2020/02/11 Python
pandas数据处理之绘图的实现
2020/06/15 Python
C/C++ 笔试、面试题目大汇总
2015/11/21 面试题
大学学习计划书范文
2014/05/02 职场文书
2014年幼儿园老师工作总结
2014/12/05 职场文书
布达拉宫的导游词
2015/02/02 职场文书
辞职信范文大全
2015/03/02 职场文书
复兴之路展览观后感
2015/06/02 职场文书
小学校本教研总结
2015/08/13 职场文书
给校长的建议书作文400字
2015/09/14 职场文书
工作总结之小学教师体育工作范文(3篇)
2019/10/07 职场文书
MySQL令人咋舌的隐式转换
2021/04/05 MySQL
AI:如何训练机器学习的模型
2021/04/16 Python
WebRTC记录音视频流(web技术分享)
2022/02/24 Javascript
我去timi了,一起去timi是什么意思?
2022/04/13 杂记