Python学习(十一)(lambda表达式及高阶函数)

本文介绍了Lambda表达式的基本概念,作为匿名函数在Python中的应用,以及高阶函数如map、reduce和filter的使用示例,包括map对列表元素进行映射,reduce进行累计操作,filter进行筛选,以及sort函数的高级用法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在这里插入图片描述

  1. lambda表达式的定义
'''
匿名函数
'''

#万物皆对象
#对象就会有内存地址,就会有一个引用
#通过这个引用就可以找到该对象并使用它

def show():
    print("Hello World!")

#将一个函数的引用赋值给另外一个变量
#show不带括号,表示一个函数,但是show带括号(show()),则传进去的是None
func = show
print(func) #<function show at 0x000001C65ABB4CA0>
print(show) #<function show at 0x000001C65ABB4CA0>
func() #Hello World!

#定义一个匿名函数
func = lambda : 1+1
print(func)  #<function <lambda> at 0x00000228E6BD4D30>
print(func())  #2

func = lambda x: print(x**10)
func(2) #1024

#lambda定义时的注意事项
'''
1.lambda 默认返回表达式计算结果,不需要return,如果加了return反而会报错
func = lambda x,y: return x+y

2.不能有循环
func = lambda x,y: for i in range(x,y) print(i)
func = lambda x,y: i=x while i<y: print(i) i+=1

3.不能使用if的正常格式
func = lambda n: if n%2==0: print('偶数')

4.但是可以使用if实现的三目运算符
func = lambda m,n: m if m>n else n
print(func(11,2)) #11
'''
  1. 高阶函数的应用(map)
    在这里插入图片描述
'''
map函数
作用:是对参数列表中的元素做一个映射
'''

my_list = [1,2,3,4,5]

#这个函数是为了给map的参数一进行传参
#因为map函数需要使用这个函数来计算每一个元素的映射值
#所以该函数有且必须只能有一个参数

def f(x):
    return x ** 3


# result_list = map(f,my_list)

#利用lambda替代函数进行传参
result_list = map(lambda n: n ** 3,my_list)
for i in result_list:
    print(i)
#1 8 27 64 125
  1. 高阶函数的应用(reduce)
    在这里插入图片描述
    在这里插入图片描述
'''
高阶函数-reduce
'''
#注意:reduce不能直接使用,需要导入一个模块functools
#reduce的作用是根据传入的参数一对参数二中的数据进行累计
import functools

#my_list = ['h','e','l','l','o']
my_list = list('hello')

result = functools.reduce(lambda s1,s2: s1+s2,my_list)
# result = functools.reduce(lambda s1,s2: s1.upper()+s2.upper(),my_list)
print(result) #hello

#练习:使用reduce求阶乘

my_list = [i for i in range(1,6)]
result = functools.reduce(lambda n1,n2: n1*n2, my_list)
print(result)  #120

  1. 高阶函数应用(filter)

在这里插入图片描述

'''
高阶函数-filter
'''
my_list = ['123','234','abc','@#$',' ','abc234','132abc']

#过滤出所有的数字字符串
#True就加入新的列表,否则就丢弃

num_list = filter(lambda s:s.isdigit(),my_list)
for s in list(num_list):
    print(s)
  1. sort函数
'''
函数-sort
'''
my_list = [7,2,4,1,5,8,9,3,6,0]
my_list.sort()

my_list = [{'id':1,'name':'tom','age':12},
           {'id':3,'name':'rose','age':32},
           {'id':2,'name':'Jack','age':22}]

#默认sort方法是不能对字典进行比较排序的
#按id的升序排序
my_list.sort(key=lambda d:d['id'])
#按年龄的降序排序
my_list.sort(key=lambda d:d['age'],reverse=True)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值