什么是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统计一个文本中重复行数的方法
Nov 19 Python
JSONLINT:python的json数据验证库实例解析
Nov 28 Python
Python验证文件是否可读写代码分享
Dec 11 Python
Python可视化mhd格式和raw格式的医学图像并保存的方法
Jan 24 Python
python单向链表的基本实现与使用方法【定义、遍历、添加、删除、查找等】
Oct 24 Python
通过 Django Pagination 实现简单分页功能
Nov 11 Python
python 爬虫 实现增量去重和定时爬取实例
Feb 28 Python
Python导入模块包原理及相关注意事项
Mar 25 Python
Python下划线5种含义代码实例解析
Jul 10 Python
Django视图、传参和forms验证操作
Jul 15 Python
Django 实现图片上传和下载功能
Dec 31 Python
Python爬虫自动化爬取b站实时弹幕实例方法
Jan 26 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程序中的常见漏洞进行攻击(下)
2006/10/09 PHP
php相当简单的分页类
2008/10/02 PHP
php 获得汉字拼音首字母的函数
2009/08/01 PHP
WordPress开发中短代码的实现及相关函数使用技巧
2016/01/05 PHP
PHP中call_user_func_array回调函数的用法示例
2016/11/26 PHP
JavaScript 指导方针
2007/04/05 Javascript
javascript中bind函数的作用实例介绍
2014/09/28 Javascript
使用百度地图api实现根据地址查询经纬度
2014/12/11 Javascript
firefox浏览器用jquery.uploadify插件上传时报HTTP 302错误
2015/03/01 Javascript
JavaScript将当前时间转换成UTC标准时间的方法
2015/04/06 Javascript
js实现头像图片切割缩放及无刷新上传图片的方法
2015/07/17 Javascript
jQuery实现的个性化返回底部与返回顶部特效代码
2015/10/30 Javascript
让编辑器支持word复制黏贴、截屏的js代码
2016/10/17 Javascript
Bootstrap table右键功能实现方法
2017/02/20 Javascript
详解本地Node.js服务器作为api服务器的解决办法
2017/02/28 Javascript
VUE利用vuex模拟实现新闻点赞功能实例
2017/06/28 Javascript
ReactNative踩坑之配置调试端口的解决方法
2017/07/28 Javascript
JS SetInterval 代码实现页面轮询
2017/08/11 Javascript
vue+VeeValidate 校验范围实例详解(部分校验,全部校验)
2018/10/19 Javascript
JavaScript常用内置对象用法分析
2019/07/09 Javascript
React.js组件实现拖拽排序组件功能过程解析
2020/04/27 Javascript
[36:20]KG vs SECRET 2019国际邀请赛小组赛 BO2 第二场 8.16
2019/08/19 DOTA
Python re模块介绍
2014/11/30 Python
Python脚本文件打包成可执行文件的方法
2015/06/02 Python
Django自定义插件实现网站登录验证码功能
2017/04/19 Python
python程序封装为win32服务的方法
2021/03/07 Python
利用Python半自动化生成Nessus报告的方法
2019/03/19 Python
OpenCV 之按位运算举例解析
2020/06/19 Python
纯CSS3打造属于自己的“小黄人”
2016/03/14 HTML / CSS
html5使用canvas实现弹幕功能示例
2017/09/11 HTML / CSS
Canvas 像素处理之改变透明度的实现代码
2019/01/08 HTML / CSS
伦敦一家领先的精品零售商:IRIS Fashion
2019/05/24 全球购物
企业开业庆典答谢词
2015/01/20 职场文书
2015年办公室主任工作总结
2015/04/09 职场文书
免职通知
2015/04/23 职场文书
2016年公司新年寄语
2015/08/17 职场文书