乍一看到列表推导式你可能会感到疑惑。它们是一种创建和使用列表的简洁方式。理解列表推导式是有用的,因为你可能在其他人的代码里看到列表推导式。下面来了解下列表推导式吧。
数字列表的推导式
回顾之前学过的知识,我们可以创建一个包含前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,列表推导式
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
《魔兽世界》大逃杀!60人新游玩模式《强袭风暴》3月21日上线
暴雪近日发布了《魔兽世界》10.2.6 更新内容,新游玩模式《强袭风暴》即将于3月21 日在亚服上线,届时玩家将前往阿拉希高地展开一场 60 人大逃杀对战。
艾泽拉斯的冒险者已经征服了艾泽拉斯的大地及遥远的彼岸。他们在对抗世界上最致命的敌人时展现出过人的手腕,并且成功阻止终结宇宙等级的威胁。当他们在为即将于《魔兽世界》资料片《地心之战》中来袭的萨拉塔斯势力做战斗准备时,他们还需要在熟悉的阿拉希高地面对一个全新的敌人──那就是彼此。在《巨龙崛起》10.2.6 更新的《强袭风暴》中,玩家将会进入一个全新的海盗主题大逃杀式限时活动,其中包含极高的风险和史诗级的奖励。
《强袭风暴》不是普通的战场,作为一个独立于主游戏之外的活动,玩家可以用大逃杀的风格来体验《魔兽世界》,不分职业、不分装备(除了你在赛局中捡到的),光是技巧和战略的强弱之分就能决定出谁才是能坚持到最后的赢家。本次活动将会开放单人和双人模式,玩家在加入海盗主题的预赛大厅区域前,可以从强袭风暴角色画面新增好友。游玩游戏将可以累计名望轨迹,《巨龙崛起》和《魔兽世界:巫妖王之怒 经典版》的玩家都可以获得奖励。