首页 > 编程语言 >python 之lambda表达式

python 之lambda表达式

时间:2023-03-21 17:11:46浏览次数:57  
标签:函数 python pd lambda 表达式 out

今天做题的时候发现了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的使用大量简化了代码,使代码简练清晰。

标签:函数,python,pd,lambda,表达式,out
From: https://www.cnblogs.com/yitongtianxia666/p/17240647.html

相关文章

  • 【Python】datetime函数用法
    datetime.date表示日期的类日期对象print("日期的类:",datetime.date(2023,11,21))print("当天的年月日:",datetime.date.today())print("当天的年:",......
  • 【Python】Jupyter Notebook:IOPub message rate exceeded. The notebook server will
    ✨报错提示IOPubmessagerateexceeded.Thenotebookserverwilltemporarilystopsendingoutputtotheclientinordertoavoidcrashingit.Tochangethisli......
  • python3.10带openssl
    wgethttps://mirrors.huaweicloud.com/python/3.10.10/Python-3.10.10.tgzwgethttps://www.openssl.org/source/openssl-1.1.1n.tar.gz1.安装openssltar-xfopenssl-1.1.......
  • 【python】多线程并发,rpc接口性能测试
    1、官方文档https://docs.python.org/3/library/concurrent.futures.html 2、安装python3.x中自带了concurrent.futures模块python2.7需要安装futures模块,使用命令......
  • 如何写好Python的Lambda函数?
    当你需要完成一件小工作时,在本地环境中使用这个函数,可以让工作如此得心应手,它就是Lambda函数。Lambda函数是Python中的匿名函数。有些人将它们简称为lambdas,它们的语......
  • 100道python基础题——(15)
    题:编写一个程序,计算a+aa+aaa+aaaa的值,给定的数字作为a的值。假设为程序提供了以下输入:9  然后,输出应该是:11106提示:如果输入数据被提供给问题,则应该假定它是控......
  • 100道python基础题——(14)
    题:编写一个接受句子的程序,并计算大写字母和小写字母的数量。假设为程序提供了以下输入:Helloworld!然后,输出应该是:大写实例1小写实例9提示:如果输入数据被提供给问题,则应......
  • Python装饰器【杭州多测师_王sir】
    defmy_decorator(param):defdecorator(func):defwrapper(*args,**kwargs):print(f"param:{param}")returnfunc(*args,**......
  • python hmac.new示例
      hmac是Python中的一个模块,它提供了一个类和一些函数,用于使用密钥对消息进行哈希处理。哈希处理是一种将任意长度的消息转换为固定长度哈希值的方法。哈希值通常用于......
  • Python中获取文件大小
    这篇文章将讨论如何在Python中获取文件的大小。1.使用os.stat()功能获取文件状态的标准解决方案是使用os.stat()Python函数。它返回一个stat_result对象,它有一......