不懂python中列表推导式指的是什么??其实想解决这个问题也不难,下面让小编带着大家一起学习怎么去解决,希望大家阅读完这篇文章后大所收获。

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

数字列表的推导式

回顾之前学过的知识,我们可以创建一个包含前10个数字的列表,如下所示:

squares=[]fornumberinrange(1,11):new_square=number**2squares.append(new_square)forsquareinsquares:print(square)

上述代码中我们实现了创建包含10个数字的列表,对每个数字作平方操作并将它们存储进新的数组的功能。代码略显冗长,我们可以省略for循环中的new_square参数,简化代码。使用列表推导式就可以进一步简化代码,如下所示:

squares=[number**2fornumberinrange(1,11)]forsquareinsquares:print(square)

平方操作和生成新列表的过程都浓缩进了一行代码。你是不是已经晕头转向了,让我们来看看这行代码发生了什么。

首先我们定义了一个列表,名字为squares。

接下来看看列表中括号中的代码:

fornumberinrange(1,11)

它在1-10之间创建一个循环,把每个数字存储到变量number中。接下来我们看一看对每次循环中的number作了哪些操作。

number**2

每个number都作了平方操作,并将结果存储在了定义好的队列中。我们可以用如下语言来阅读这行代码:

squares=[raisenumbertothesecondpower,foreachnumberintherange1-10]、

其他例子

上个例子是对数字作平方操作,下列代码是对数字作乘操作,仔细阅读代码,体会数字列表表达式的用法。

#Makeanemptylistthatwillholdtheevennumbers.evens=[]#Loopthroughthenumbers1-10,doubleeachone,andaddittoourlist.fornumberinrange(1,11):evens.append(number*2)#Showthatourlistiscorrect:foreveninevens:print(even)

非数字列表的推导式

我们也可以在非数字列表中运用推导式。在下面的例子中,我们会创建一个非数字列表,然后利用推导式生成一个新的列表。不运用推导式的源代码如下所示:

#Considersomestudents.students=['bernice','aaron','cody']#Let'sturnthemintogreatstudents.great_students=[]forstudentinstudents:great_students.append(student.title()+"thegreat!")#Let'sgreeteachgreatstudent.forgreat_studentingreat_students:print("Hello,"+great_student)

我们想写下如下所示的推导式:

great_students = [add 'the great' to each student, for each student in the list of students]

代码如下所示:

#Considersomestudents.students=['bernice','aaron','cody']#Let'sturnthemintogreatstudents.great_students=[student.title()+"thegreat!"forstudentinstudents]#Let'sgreeteachgreatstudent.forgreat_studentingreat_students:print("Hello,"+great_student)

感谢你能够认真阅读完这篇文章,希望小编分享python中列表推导式指的是什么?内容对大家有帮助,同时也希望大家多多支持亿速云,关注亿速云行业资讯频道,遇到问题就找亿速云,详细的解决方法等着你来学习!