Python—函数进阶篇

本文深入探讨Python中的lambda表达式,介绍其作为匿名函数的使用和特点,包括如何赋值、作为参数传递等。同时讲解了eval和exec函数的用法,以及Python中的高阶函数概念。

lambda表达式(匿名函数表达式)

在这里插入图片描述
作用:创建一个匿名函数对象。同def类似,但不提供函数名。

语法:lambda [形参1,形参2,…] : 表达式

语法说明

  • lambda 只是一个表达式,它用来创建一个函数对象。
  • 当lambda表达式调用时,先执行冒号后的表达式,并返回表达式的结果的引用。
  • lambda 表达式创建的函数只能包含一条表达式。
  • lambda 表达式比函数简单,且可以随时创建和销毁,有利于减少程序的偶合度。

把lambda函数赋值给一个变量

# 定义一个加法函数,并把值赋给变量myadd,就可以执行myadd(5, 6);
myadd = lambda x, y: x+y
print myadd(5, 6)      # 结果:11

把lambda函数赋值给其他函数

----------欢迎加入我的python新手交流群851211580------------
import time, datetime
time.sleep = lambda x: None      # time 库的 sleep 函数不会执行原功能;

starttime = datetime.datetime.now()
time.sleep(3)
endtime = datetime.datetime.now()
print endtime-starttime          # 结果:0:00:00

在这里插入图片描述
把lambda函数作为其他函数的返回值

def add(n):
    return lambda x: x+n
myadd = add(5)
print myadd(15)      # 结果:20

def add(x):
    def inner(y):
        return x+y
    return inner
myadd = add(5)
print myadd(15)      # 结果:20

把lambda函数做参数传给其它函数(map, filter, reduce)

# 利用map映射函数输出序列加工后的新序列。
print map(lambda x: x ** 2, range(1, 3))      # 结果:[1, 4]   map返回类型:<type 'list'>
def arr(x):
    return x ** 2
print map(arr, range(1, 3))                   # 结果:[1, 4]   map返回类型:<type 'list'>

# 利用filter过滤函数输出0-9的奇数;返回False时将此数据丢弃,返回True,则保留此数据
print filter(lambda x: x % 2, range(10))      # 结果:[1, 3, 5, 7, 9]   filter返回类型:<type 'list'>
def odd(x):
    return x % 2
print filter(odd, range(10))                  # 结果:[1, 3, 5, 7, 9]   filter返回类型:<type 'list'>

eval和exec函数

高阶函数

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值