不会列表推导式,看这一篇文章就够了

本文主要适合新手阅读。
在学习列表推导式之前,首先我们要对列表推导式进行灵魂三问:列表推导式是什么?列表推导式的目的?列表推导式的作用?
列表推导式是什么:for 循环的升级使用方法
列表推导式的目的:一行代码实现原本需要几行才能撰写的代码
列表推导式的作用:节省时间,阅读方便。
下面,我们通过一个简单的例子来讲解列表推导式。
需求:生成一个数字0-9的列表
for循环实现:

可以看到,我们需要3行代码才能实现将0-9赋给列表。如果你写一个项目,一个for循环多几个,每个都占用4行,那将让代码变得很长,修改维护很不方便。所以就有了
列表推导式实现:
在这里插入图片描述
可以看到,我们只用一行就实现了将0-9赋给了list,那它是怎样实现的呢,我们来看下面这张图:
在这里插入图片描述
通过两张图对比,我们可以看到,list=[i for i in range(10)]的流程是这样的:
第一步:list=[]
第二步:for循环遍历range(10)
第三步:将值赋给list
是不是和第一张图的三步流程一模一样,只是将三行简化成了一行。
下面,我们对需求进行升级:
将小于10的单数赋给列表
for循环实现(4行):
在这里插入图片描述
列表推导式实现(1行):
在这里插入图片描述
for + if 也是列表推导式的常用用法,if能用的语句,在列表推导式里也可以使用。下面,我们对需求再进行升级:
将小于20数字中同时满足的单数和被3整除的数字赋给列表
for循环实现:
在这里插入图片描述
列表推导式实现:
在这里插入图片描述
上面三个小例子,我们对列表推导式有了个简单的了解,可以看到列表推导式非常好用,列表推导式不仅可以用生成列表,也可以生成字典。
需求:生成一个字典,键为1-10,计算每个键与11-20进行整除,将所有能够整除的数字放入列表,然后赋给键。
for循环实现:
在这里插入图片描述
列表推导式实现:
在这里插入图片描述
在上面这个列表推导式例子中,我们用了两个for循环,那么当一个列表推导式有多个循环时,它的执行顺序是怎样的,当我们要写多个循环嵌套时,又该如何写呢。
我们来看下下面的例子:
在这里插入图片描述
从上面的例子可以看到,列表推导式遍历可以返回一个列表,那么列表推导式里可以返回列表推导式吗,答案是可以的。
在这里插入图片描述
从上面例子可以看到,列表推导式的执行和其它代码的不一样,其它代码是从左往右执行,而列表推导式是从右往左执行。
在这里插入图片描述
那么撰写和执行是一样的,先写右边,再写左边
在这里插入图片描述
最后,出一个题目给大家,通过一行列表推导式实现求出1-20里所有的质数,并将每个质数与51-100进行整除运算,将能整数的数加入列表,并与被除数组合为字典,最后将所有质数字典加入最外层列表。
结果如下:
在这里插入图片描述

  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值