python lambda 表达式与 filter map 函数

filter 与 map 函数

filter和map是python中常常被使用的两个方法,这两个方法的使用方法很相似。

相同点:

第一个参数都是一个函数

第二个参数是一个可迭代序列

返回可迭代对象

不同点:

filter的第一个参数是函数,这个函数是用来判断条件的

map的第一个函数也是函数,但这个函数是用来做映射的。

lambda 表达式

lambda表达式是一行的函数。它们在其他语言中也被称为匿名函数。即,函数没有具体的名称,而用def创建的方法是有名称的。如果你不想在程序中对一个函数使用两次,你也许会想用lambda表达式,它们和普通的函数完全一样。而且当使用函数作为参数的时候,lambda表达式非常有用,可以让代码简单,简洁。lambda表达式返回的是function类型,说明是一个函数类型。

lambda表达式格式:

#lambda格式:
lambda arg1, arg2, arg3, ... argN : expression
#传统函数定义方式:
def <lambda>(arg1,arg2,arg3, ... argN):
    return expression

例子:

squareY=lambda y:y*y
squareY(5)  #25

y=[lambda x:x*x,2,3]
y[0](y[1])  #4

mapped=map(lambda x:ord(x)+10,"ASDFJhrf")  #ord()转换成十进制ascii
list(mapped)  #[75, 93, 78, 80, 84, 114, 124, 112]

list(filter(lambda x:x%2==1,range(10)))  #[1, 3, 5, 7, 9]

#lambda转化成传统函数形式:
def boring(x):
    return ord(x)+10
list(map(boring,"sdftgh"))  #[125, 110, 112, 126, 113, 114]
#map
a = [3,4,1,2,54,6]
b = list(map(lambda x: x**2,a))
print(b)  #[9, 16, 1, 4, 2916, 36]

#filter
a = [3,4,1,2,54,6]
b = list(filter(lambda x:x>2,a))
print(b)  #[3, 4, 54, 6]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值