经过了几天用循环语句写代码,很多小伙伴纷纷表示没有初学的时候那样好用了。看似循环语句可以简单的表述,但是如果完成复杂的结果就需要大量的代码。对于列表的学习想必大家都涉及到了,不过之前学的都是用for循环去处理,今天我们试着避开for循环,看看其他的代码如何来创建列表。
先看下面的代码:
data = [x**2 for x in range(0, 5)] # 此时data = [0, 1, 4, 9, 16]
如果不知道背后的语法规则,那么很难理解为什么可以在列表的方括号中写一个“for”循环?实际上,这种语法称为列表推导式,和lambda表达式类似,都是在代码很短的情况下被使用。
列表推导式或者说列表解析式是一种非常简洁的创建列表的方式。很多时候我们需要创建一个满足特定要求的新列表,不得不用for循环来创建,而用列表推导式来表达只需要一行代码即可。列表推导式另一个优点是相比于for循环更高效,因为列表推导式在执行时调用的是Python的底层C代码,而for循环则是用Python代码来执行。
比如我们需要创建一个包含平方数的列表,用for循环实现方式如下:
squares = [] for i in range(10): squares.append(i**2) print(squares)
如果用列表推导式的话只需一行代码即可实现:
squares = [i**2 for i in range(10)]
列表推导式的语法结构可以分为几部分:
0. “[]”,定义列表的中括号。
1. for循环初步定义列表。
2. 可选:在for循环后面可以使用if语句进行过滤。
3. 在for循环前定于列表的元素表达式,可以是任意的表达式。可以是for循环中的元素本身,也可以是元素进行运算后的结果,也可以是元素组成的元祖或者列表,可以是一个函数,甚至可以是另一个列表解析式(嵌套列表解析式)。
4. 可选:在for循环后面可以再嵌套for循环。
观察上面两种创建列表的代码,我们可以看出实现for循环的代码是4行,而如果我们使用列表推导式,只用轻轻松松的一行代码即可解决,小伙伴们还不快快行动吗?
网站栏目:创新互联Python教程:如何避开for循环在python3代码中创建列表?
URL标题:http://www.shufengxianlan.com/qtweb/news49/386449.html
网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联