首页 > 其他分享 >4.3

4.3

时间:2024-06-18 20:20:48浏览次数:5  
标签:函数 4.3 pd 使用 lambda 表达式 out

python 之lambda表达式

 

今天做题的时候发现了lambda表达式,就去网上搜了搜,这么说吧,lambda表达式算是python一种比较方便的语法了,主要作用是代替简单的函数,免去了编写函数的烦恼,语法也更加地简洁。下面就简单介绍一下lambda的使用场景。从本质上来讲,lambda是一个函数,可以接受参数输入。

下面附上所搜到的知识点,详情请看python 之lambda表达式 - 知乎 (zhihu.com)

lambda 基础用法
lambda表达式的基础用法,做简单的加减乘除,或者格式修改操作。

funca = lambda x: x+1 
funca(2)
out:3

lambda和if结合使用

lambda表达式既然和函数一样那么也可以用逻辑控制流,用if去做判断,返回我们想要的东西。

解释    
funcb = lambda x:x+1 if x==1 else 0
funcb(1)
out:2
funcb(2)
out:0

lambda表示式和for循环结合使用

跟if不一样,lambda表达式里用for循环会报错,但是也可以for循环一起用,只不过比较复杂,用了for循环生成的是一个由函数组成的列表。

funcc = [lambda x: x+j for j in range(5)]
[f(1) for f in funcc]
out:[5, 5, 5, 5, 5]

但是从上面的输出来看,又让人非常困惑,为什么全都是5,而不是[1,2,3,4,5]。这里需要解释的是:这个循环控制了输出五个lambda函数,但是每个函数都是执行到循环的最后一步,也就是说x+j实际上和x+4是等价的,每个函数都一样。

 

lambda表达式的嵌套使用

这个虽然说也有用的,但是可读性特别差,尽量避免使用,毕竟用lambda表达式是为了简单,这么用实在是让人捉摸不透。还是举个例子:

解释    
funcd = lambda: lambda x: x + 5
funcdd = funcd()
funcdd(3)
out:8

看完你应该也觉得没有任何意义吧。

 

lambda表达式和map函数结合使用

我估计这个是最常用的使用方法,因为map本身的作用就是对一个list套用一个方法。来看例子。

list1 = list(map(lambda x: x**2,[1,2,3,4]))
out: [1, 4, 9, 16]

 

lambda表达式和filter函数结合使用

这个是另一个比较重要的应用场景就是筛选出来符合条件的数据。

list2 = list(filter(lambda x:x<=4,[2,3,4,5]))
out:[2, 3, 4]

 

lambda表达式用于pandas

pandas里的apply函数,可以用自己编写的lambda表达式这 个是非常方便的,也是经常使用,举一个小数转化为百分比的案例吧。

#先生成一个5行一列的dataframe

解释    
pd_1 = pd.DataFrame([round(np.random.random(),2) for _ in range(5)])
#数据长这样
      0
0  0.95
1  0.62
2  0.04
3  0.61
4  0.77
#接下来转换
pd_2 = pd_1[0].apply(lambda x: '{:.0%}'.format(x))
out:
0    95%
1    62%
2     4%
3    61%
4    77%

通过以上例子,我们发现,lambda的使用大量简化了代码,使代码简练清晰。

标签:函数,4.3,pd,使用,lambda,表达式,out
From: https://www.cnblogs.com/binglinll/p/18255053

相关文章

  • 7.4.3 最小生成树
    最小生成树参考书:《数据结构(C语言版)》严蔚敏正在学习这本书,把书中的数据结构用c++代码实现了一遍prim算法#include<vector>#include<cstdio>#include<climits>usingnamespacestd;unsignedminimum(constvector<pair<unsigned,int>>&closedge){unsign......
  • 4.3随笔
    QLINSERTINTO语句INSERTINTO语句用于向表中插入新记录。SQLINSERTINTO语法INSERTINTO语句可以有两种编写形式。第一种形式无需指定要插入数据的列名,只需提供被插入的值即可:INSERTINTOtable_nameVALUES(value1,value2,value3,...);第二种形式需要指定列名及被......
  • 4.30博客
    上午计网下午建民课晚上跑步真是充实学习内容:安卓<LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"  android:layout_width="match_parent"  android:layout_height="match_parent"  android:orientation="vertical&qu......
  • 4.30
    packagecom.example.test_one;importandroidx.appcompat.app.AppCompatActivity;importandroid.os.Bundle;importandroid.view.View;importandroid.widget.EditText;importandroid.widget.TextView;importcom.example.test_one.dao.UserDao;importcom.example.test_on......
  • “另一个程序已锁定文件的一部分,进程无法访问 打不开磁盘“G:\Ubuntu20.04.3\Ubuntu
    文章目录前言:一、删除lck文件二、移除挂载硬盘总结:前言:在重新刷了系统进行对虚拟机移植的过程中我遇到了“另一个程序已锁定文件的一部分,进程无法访问打不开磁盘"G:\Ubuntu20.04.3\Ubuntu20.04.3.vmdk"或它所依赖的某个快照磁盘……”的问题,因为情况慌乱,所以我没......
  • Watermark Sense for Mac(批量图像水印添加工具)v1.4.3版
    WatermarkSensemac是一款为MacOS平台上设计开发的批量图像水印实用程序.WatermarkSenseforMac(图像批量水印工具)使您能够实现伟大创造性的结果,在批处理模式下,节省大量的时间。WatermarkSensemac软件地址WatermarkSenseMac软件功能WatermarkSense支持文本......
  • 前端工程化工具系列(八)——Commitizen(v4.3.0):Git提交规范化工具
    在前端工程化工具系列(四)——Commitlint(v19.3.0):规范化Git提交中曾介绍过commitlint,它主要负责检查提交信息的规范性。而本文中的commitizen,则是提供给了一个交互式的命令行界面,引导开发者按照预定义的格式填写提交信息。它俩的目的都是规范git提交。按照使用习惯......
  • 4.30
    地铁代码<template>  <view class="container">    <view class="example">      <uni-formsref="form" :model="form" labelWidth="80px">  <uni-forms-itemlabel="线路号" name=......
  • 提速15%,PaddleOCRSharp新版v4.3发布
    PaddleOCRSharpv4.3版本,已经于5月23日发布。该版本的发布,在不影响识别精度的同时,带来了10%~15%速度的提升。项目地址:https://gitee.com/raoyutian/PaddleOCRSharp项目简介PaddleOCRSharp 作者是广州英田信息科技有限公司的创始人明月心(raoyutian) ,是一个基于百度飞桨Padd......
  • 图形化编程题:根据身份证号码识别是否优先选择火车下铺,Scratch编程实现代码--电子学会2
    今天做了一下2024.3的电子学会的2道二级考级题,三道三级考级题,2道四级考级题。整体感觉越来越靠近真实的做软件了。里面应用到排序、自定义模块(这相当于c++的函数,java的方法)、校验输入是否全是数字、标识符等,感觉这次编程题整体难度比之前要提升了一丢丢。按理像我这种写了10......