看似循环语句可以简单的表述,但是如果完成复杂的结果就需要大量的代码。对于列表的学习想必大家都涉及到了,不过之前学的都是用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循环。
如今python编程语言市场需求大,薪资待遇上万尽在咫尺!如果你也想学习python技术可以填写下面表单,Python学习资料限时免费领取!
下一篇: 没有了
一级建造师二级建造师消防工程师造价工程师土建职称房地产经纪人公路检测工程师建筑八大员注册建筑师二级造价师监理工程师咨询工程师房地产估价师 城乡规划师结构工程师岩土工程师安全工程师设备监理师环境影响评价土地登记代理公路造价师公路监理师化工工程师暖通工程师给排水工程师计量工程师
执业药师执业医师卫生资格考试卫生高级职称护士资格证初级护师主管护师住院医师临床执业医师临床助理医师中医执业医师中医助理医师中西医医师中西医助理口腔执业医师口腔助理医师公共卫生医师公卫助理医师实践技能内科主治医师外科主治医师中医内科主治儿科主治医师妇产科医师西药士/师中药士/师临床检验技师临床医学理论中医理论