强大的python列表生成式(推导式)

下面我们用提出问题,解决问题的方法去给大家讲什么是python列表式

问题一:生成一个由1-10的平方组成的列表

        刚听到这个问题时,你的第一反应是不是用for循环,如果是的话,那么我推荐一下今天介绍的列表生成式

答:

print([i**2 for i in range(1,11)])    #[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

 一行代码就搞定了,是不是特方便!!!

至于这行代码我们要去怎么理解呢,可以看见的是,i**2后面就是一个正常的for循环,而前面i**2就是for循环里面的执行的语句,最后再用一个中括号[]包起来就是一个列表生成式啦,是不是很简单!!!

下面我们可以进阶一下

问题二:生成一个1-10的偶数的平方生成的列表
        听到这个问题的时候你想到了for循环里面嵌套的if判断没有呀

答:

print([i**2 for i in range(1,11) if i%2 == 0])    #[4, 16, 36, 64, 100]

好的,这就是上面问题的解法 so easy

再进阶一下

问题三:我们将1-10中每个偶数的二次方,三次方,四次方单独生成一个列表(一共五个列表)并且都包含在一个列表中

        这个问题稍稍有点难度,小伙伴们想到答案木有

答:

print([[i**n for n in range(2,5)] for i in range(1,11) if i%2 == 0])
#[[4, 8, 16], [16, 64, 256], [36, 216, 1296], [64, 512, 4096], [100, 1000, 10000]]

欧克,进阶,进阶,进阶!!!

问题四:我们拿到问题三中生成的列表,判断里面的元素是否是三的倍数,是的话返回True,否则返回False(最终的形式不变,就里面的数字变成了True or False)

        最后一个问题喽,好好想想

print([[True if i**n % 3 == 0 else False for n in range(2,5)] for i in range(1,11) if i%2 == 0])
#[[False, False, False], [False, False, False], [True, True, True], [False, False, False], [False, False, False]]

到这里,强大的列表生成式就已经讲完了,小伙伴们要是有一些其他的想法可以在评论区留言和小编交流哦

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值