什么是python的列表推导式

 更新时间:2020年05月26日 16:22:50   作者:silencement  
在本篇文章里小编给大家分享了关于python列表推导式的含义及用法,需要的朋友们可以参考下。

乍一看到列表推导式你可能会感到疑惑。它们是一种创建和使用列表的简洁方式。理解列表推导式是有用的,因为你可能在其他人的代码里看到列表推导式。下面来了解下列表推导式吧。

数字列表的推导式

回顾之前学过的知识,我们可以创建一个包含前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程序添加图形化界面的教程

    这篇文章主要介绍了为Python程序添加图形化界面的教程,图形化界面编程是开发Python本地应用的必备,需要的朋友可以参考下
    2015-04-04
  • Python 下载及安装详细步骤

    Python 下载及安装详细步骤

    这篇文章主要介绍了载及安装Python详细步骤,安装python分三个步骤,具体安装方法本文给大家介绍的非常详细,需要的朋友可以参考下
    2019-11-11
  • python高级内置函数用法实例

    python高级内置函数用法实例

    在本篇文章里小编给大家整理的是一篇关于python高级内置函数用法实例内容,有兴趣的朋友们可以学参考下。
    2021-09-09
  • python获取100以内的质数3种方式总结

    python获取100以内的质数3种方式总结

    质数也称为质数,具有无限个,质数定义为大于1的自然数,除了1和它本省外没有其他因数的数称为质数,这篇文章主要给大家介绍了关于python获取100以内质数的3种方式,需要的朋友可以参考下
    2024-08-08
  • python中xrange用法分析

    python中xrange用法分析

    这篇文章主要介绍了python中xrange用法,实例分析了xrange的功能、作用以及与range在使用中的区别,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-04-04
  • python中文件导入的使用(在同一目录下和在不同目录下)

    python中文件导入的使用(在同一目录下和在不同目录下)

    在Python中,使用pathlib模块的Path类可以方便地导入不同目录下的文件,本文就来介绍一下,需要的朋友们下面随着小编来一起学习学习吧
    2024-12-12
  • python3 flask使用连接池连接数据库实例

    python3 flask使用连接池连接数据库实例

    这篇文章主要为大家介绍了python3 flask使用连接池连接数据库实例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-08-08
  • Python代码阅读--列表元素逻辑判断

    Python代码阅读--列表元素逻辑判断

    本篇阅读的三份代码的功能分别是判断列表中的元素是否都符合给定的条件;判断列表中是否存在符合给定的条件的元素;以及判断列表中的元素是否都不符合给定的条件,下面小编将在文章里详细介绍,需要的朋友可以参考下
    2021-09-09
  • python爬虫之生活常识解答机器人

    python爬虫之生活常识解答机器人

    这篇文章主要介绍了python爬虫之生活常识解答机器人,文中有非常详细的代码示例,对正在学习python的小伙伴们有非常好的帮助,需要的朋友可以参考下
    2021-04-04
  • Django查找网站项目根目录和对正则表达式的支持

    Django查找网站项目根目录和对正则表达式的支持

    这篇文章主要介绍了Django查找网站项目根目录和对正则表达式的支持,仅供参考,需要的朋友可以参考下
    2015-07-07

最新评论