什么是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中类的继承代码实例
Oct 28 Python
Python zip()函数用法实例分析
Mar 17 Python
python实现点对点聊天程序
Jul 28 Python
在Pycharm中修改文件默认打开方式的方法
Jan 17 Python
Python list列表中删除多个重复元素操作示例
Feb 27 Python
Python操作redis实例小结【String、Hash、List、Set等】
May 16 Python
Python实现EXCEL表格的排序功能示例
Jun 25 Python
python使用flask与js进行前后台交互的例子
Jul 19 Python
在keras里实现自定义上采样层
Jun 28 Python
django序列化时使用外键的真实值操作
Jul 15 Python
Python利用matplotlib绘制散点图的新手教程
Nov 05 Python
Python环境搭建过程从安装到Hello World
Feb 05 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 SEO优化之URL优化方法
2011/04/21 PHP
php中替换字符串中的空格为逗号','的方法
2014/06/09 PHP
用于table内容排序
2006/07/21 Javascript
JavaScript中为元素加上name属性的方法
2011/05/09 Javascript
javascript不可用的问题探究
2013/10/01 Javascript
JS获取URL中的参数数据
2013/12/05 Javascript
javascript文件中引用依赖的js文件的方法
2014/03/17 Javascript
深入理解JavaScript内置函数
2016/06/03 Javascript
微信小程序 WebSocket详解及应用
2017/01/21 Javascript
用move.js库实现百叶窗特效
2017/02/08 Javascript
原生JS 购物车及购物页面的cookie使用方法
2017/08/21 Javascript
vue实现div拖拽互换位置
2020/07/29 Javascript
JS立即执行函数功能与用法分析
2019/01/15 Javascript
详解小程序之简单登录注册表单验证
2019/05/13 Javascript
vuex实现数据状态持久化
2019/11/11 Javascript
使用typescript改造koa开发框架的实现
2020/02/04 Javascript
JavaScript中的函数式编程详解
2020/08/22 Javascript
Python contextlib模块使用示例
2015/02/18 Python
Python中的Numeric包和Numarray包使用教程
2015/04/13 Python
Python统计python文件中代码,注释及空白对应的行数示例【测试可用】
2018/07/25 Python
详解Python中的分支和循环结构
2020/02/11 Python
HTML5 CSS3给网站设计带来出色效果
2009/07/16 HTML / CSS
HTML5 canvas绘制的玫瑰花效果
2014/05/29 HTML / CSS
GoDaddy英国:全球排名第一的域名注册商
2018/06/08 全球购物
美国葡萄酒网上商店:Martha Stewart Wine Co.
2019/03/17 全球购物
信息技术专业个人自我评价
2013/12/11 职场文书
《雷鸣电闪波尔卡》教学反思
2014/02/23 职场文书
房屋买卖协议书
2014/04/10 职场文书
爱心活动计划书
2014/04/26 职场文书
大学生学雷锋活动总结
2014/06/26 职场文书
法人委托书范本
2014/09/15 职场文书
个人投资合作协议书
2014/10/12 职场文书
催款通知书范文
2015/04/17 职场文书
工人先锋号事迹材料(2016精选版)
2016/03/01 职场文书
24年收藏2000多部退役军用电台
2022/02/18 无线电
spring 项目实现限流方法示例
2022/07/15 Java/Android