python中的解析式是什么_3分钟理解python中的list解析式&为什么要用list解析式

首先上为什么要用list解析式的原因:

1.使用list解析式,代码可读性更好(可能作者认为代码越短可读性越好吧)

2.使用list解析式可以减少代码量

3.相比于标准for循环,使用list解析式使得程序运行的更快

对于从一个已存在的list中创建一个新的list,使用list解析式无疑是很方便的一种代码形式。

首先什么是list解析式怎么实现:

假设现在有一个list,我们暂且将其命名为list_animals,作为存储动物园里所有动物的list,现在兽医想从list_animals中挑选一些animal进行体检。为了达到这个目的,我们可以使用标准的for循环:

#构建存储动物园所有动物的list:list_animals

List_animals=['Rabbit','Rabbit','Rabbit','Rabbit','Cat','Cat','Cat','Cat','Cat','Cat','Cat',‘Turtle’,’Turtle','Turtle','Turtle','Turtle','Turtle','Turtle','Dog','Dog','Kangaroo','Kangaroo','Kangaroo','Kangaroo','Kangaroo','Kangaroo']

#构建存储需要体检的动物的list:list_animals_check

List_animals_check=[]

For animal in list_animals:

List_animals_check.append(animal)

代码很简单,首先我们创建存储动物园中所有动物的list_animals,然后我们创建存储需要体检的动物的list_animals_check,最后我们逐个遍历list_animals,找到需要体检的动物,并将其添加到list_animals_check

现在我们利用list解析式重新实现这个逻辑:

List_animals_check=[animal for animal in list_animals]

相比于使用标准for 循环里的三行代码,使用list解析式式只需要一行代码。

下面我们看一下,再加一个限制条件,两种形式代码之间的区别:

假设兽医只需要给除狗和兔子之外的小动物做体检,

使用标准for循环的代码如下:

List_animals_check=[]

For animal in list_animals:

If(animal != ‘dog’ and animal !=’rabbit’):

List_animals_check.append(animal)

使用list解析式的代码如下:

List_animals_check=[animal for animal in list_animals if animal !=’dog’ and animal !=’rabbit’ ]

结果显而易见,标准for 循环形式四行代码,而使用list解析式依然只需要一行代码

相比于标准for 循环形式的代码,list解析式代码不仅代码量小而且执行速度也更快:

从上面的执行时间来看,使用list解析式比标准for循环节省了约51%的时间。

此外不仅list可以使用解析式,集合也可以使用解析式,字典也可以使用解析式,具体可以参考链接二。

参考:https://towardsdatascience.com/python-list-comprehension-in-3-minutes-and-3-reasons-why-you-should-use-it-bf398654caf9​towardsdatascience.com轻松学会Python列表解析式 - 精品 IT 资源分享​codingpy.com895cf9ebe318af3602ede69c61001ecc.png

致谢:

北邮爱可可-爱生活老师

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值