python匿名函数还可以这么用

今天给大家带来python的匿名函数。

1、前言

匿名函数是指没有名字的函数,它主要应用在需要一个函数、但是又不想费神去命名这个函数的场合。通常情况下,这样的函数只使用一次。

2、lambda函数与def函数的区别

1.lambda可以立即传递(无需变量),自行返回结果

2.lambda在内部只能包含一行代码

3.lambda是一个为编写简单函数而设计的,而def用来处理更大的任务

4.lambda可以定义一个匿名函数,而def定义的函数必须有一个名字

lambda函数的优势:

1.对于单行函数,使用lambda表达式可以省去定义函数的过程,让代码更加简洁

2.对于不需要多次复用的函数,用lambda表达式可以在用完后立即释放,提高程序执行的性能。

3、语法格式

在Python中,使用lambda表达式创建匿名函数,其语法格式如下:

result = lambda[arg1[,arg2,...,argn]]:expression

参数说明:

  • result:用于调用lambda表达式。
  • [arg1[,arg2,…,argn]]:可选参数,用于指定要传递的参数列表,多个参数使用逗号“,”分隔。
  • expression:必选参数,用于指定一个实现具体功能的表达式,如果有参数,那么在该表达式中将应用这些参数。

注意: 使用lambda表达式时,参数可以有多个,用逗号“,”分隔,但是表达式只能有一个,即只能返回一个值,而且也不能出现其他非表达式语句(如for或while)。

4、示例

1.不带参数

fn = lambda: 100
print(fn())
# output 100
print(fn)
#output 函数地址

2.带参数

fn = lambda a, b: a + b
print(fn(2, 3))
# output 5
123

3.默认参数

fn = lambda a, b, c=100: a + b + c
print(fn(2, 4, 4))
# output 10
print(fn(2, 4))
# output 106
12345

4.作判断使用(与三目运算符连用)

fn = lambda a, b: a if a > b else b
print(fn(4, 10))
# output 10
123

5.作拆包使用

fn = lambda *args: args
print(fn(10, 20, 30))
# output (10, 20, 30)
123

6.终极用法 一行搞定1-100累加和:

import functools
print(functools.reduce(lambda a, b: a + b, range(1, 101)))
# 5050
123

一行搞定1-100偶数和:

import functools
print(functools.reduce(lambda a, b: a + b, list(filter((lambda x: x % 2 == 0), range(101)))))
# 2550

5、map方法混搭

遍历序列,对序列中每个元素进行操作,最终获得新的序列

from functools import reduce
 
 
def add(num):
    return num ** 2
 
 
x = map(add, [1, 2, 3, 4, 5])
print(x)
print(list(x))
print("_" * 50)
 
y = map(lambda num: num ** 2, [1, 2, 3, 4, 5])  # map()对序列中的每个元素进行操作,获得新的序列
print(list(y))
 
x = filter(lambda num: num % 2 == 0, [1, 2, 3, 4, 5])  # filter()对序列中的每个元素筛选,获得新的序列
print(list(x))
 
list1 = [1, 2, 3, 4, 5]
list2 = reduce(lambda x, y: x + y, list1)  # reduce()对序列中元素进行累加
print(list2)

好了,今天就介绍到这儿。

学习资源推荐
除了上述分享,学好 Python 不论是就业还是做副业赚钱都不错,但要学会 Python 还是要有一个学习规划。最后大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!

包括:Python激活码+安装包、Python web开发,Python爬虫,Python数据分析,人工智能、自动化办公等学习教程。带你从零基础系统性的学好Python!

👉Python所有方向的学习路线👈

Python所有方向路线就是把Python常用的技术点做整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。(全套教程文末领取)

在这里插入图片描述
👉Python学习视频600合集👈

观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。

在这里插入图片描述

温馨提示:篇幅有限,已打包文件夹,获取方式在:文末

👉Python70个实战练手案例&源码👈

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

在这里插入图片描述

👉Python大厂面试资料👈

我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

在这里插入图片描述

在这里插入图片描述

👉Python副业兼职路线&方法👈

学好 Python 不论是就业还是做副业赚钱都不错,但要学会兼职接单还是要有一个学习规划。

在这里插入图片描述

👉 这份完整版的Python全套学习资料已经上传,朋友们如果需要可以V扫描下方二维码联系领取
保证100%免费

  • 26
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值