挑战 30 天学完 Python:Day13 列表推导式和 Lambda
📘 Day 13
📘 Day 12🎉 本系列为 Python 基础学习,原稿来源于英文项目,大奇主要是对其本地化翻译、逐条验证和补充。此系列适合零基础同学,或仅了解 Python 一点知识,但又没有系统学习的使用者。总之如果你想提升自己的 Python 技能,欢迎加入《挑战 30 天学完 Python》
作者:大奇 MegaQi | Info 签约作者 ,专注测试开发技术实战干货分享,欢迎访问主页长期关注。
列表推导式
在 Python 中,列表推导式(又称列表解析式)提供了一种简明扼要的方法来创建列表。一种从序列创建列表的紧凑方式。列表推导式比使用 for 循环处理列表要快得多。
它的结构是在一个中括号里包含一个表达式,然后是一个 for 语句,然后是 0 个或多个 for 或者 if 语句。简单来讲,是从第一个 for 开始依次向右推导,得出结果后给到最左边第一个变量。
基础实例 1:
如果你想将字符串转换为字符列表。你可以使用一些方法。让我们来看看其中的一些:
基础实例 2:
例如,如果你想生成一个数字列表。
为了更好的理解,我将上边的数学运算推导转换成普通的方式,通过对比或许帮助你理解其中逻辑
实例 3:带条件
列表推导式可以与 if 表达式结合使用
因为带条件稍微复杂了点,因此我将上边后三个例子进行顺序拆解,让我们看看是啥样:
我想经过的拆解对比,应该对于列表的推导有一定了解了。这也算在学习 Python 路上接触的第一个所谓的语法糖了。是不是一下子就高级起来了。但需要提醒的是,如果你对这逻辑无法理解或不能熟练应用。建议还是老老实实写普通方法实现。
Lambda 函数
Lambda 函数是一个没有名字的小型匿名函数。它可以接受任意数量的参数,但只能有一个表达式。Lambda 函数类似于 JavaScript 中的匿名函数。当我们想在另一个函数里面写一个匿名函数时,我们就需要它。
创建 Lambda 函数
要创建 lambda 函数,我们使用 lambda 关键字后跟一个形参和表达式。请参阅下面的语法和示例。Lambda 函数不使用 return,它显式地返回表达式。
例子
在另一个函数中使用 lambda
我们可以直接在一个函数里直接使用 lambda 表达式。具体举一个例子:
可能有些晦涩难懂。这里同样进行拆解说明:
当调用 power 函数的时候先将第一个参数 2 赋值给 x
x 参数值传递给 lambda 表达式即 lambda n:2 ** n 并返回这个匿名函数
紧接着将第二个参数 5 赋值给匿名函数参数 n
匿名 lambda 进行表达式计算 2 ** 3 算的结果
将最终两次函数逻辑结果赋值给 cube 变量,最后通过 print 打印结果为 8
以上就是本节一些在 python 语法中高级的用法学习。希望多多体会,当然这一开始就说如果你对这不熟悉请回归到最基本的编程方法上。
🌕 再接再厉。保持前进的势头,天空才是极限!你刚刚完成了第 13 天的挑战,和以往一样让我们做一些联系巩固学习成功吧。
💻 第 13 天练习
使用列表推导式过滤出列表中零和负数
利用推导式将下边的多维数组变成一维数组:
使用列表推导式创建以下元组列表:
将 countries 元组列表转换成目标输出列表:
将下面的列表更改为字典列表:
将下面的列表列表更改为连接字符串的列表:
编写一个 lambda 函数,它能够解决线性函数的斜率计算。
🎉 CONGRATULATIONS ! 🎉
版权声明: 本文为 InfoQ 作者【MegaQi】的原创文章。
原文链接:【http://xie.infoq.cn/article/92ea5c3c06d24e2cb3070e76c】。文章转载请联系作者。
评论