python中lambda函数以及map函数复习

# 断更很久了今天来复习下python中lambda函数的使用
def test(x):
    return x*x
# 这里我们用lambda定义一个匿名的内联函数。请注意,该函数没有名称。test 是保存创建的lambda函数的变量的名称
# 上面的函数和下面的lambda函数是一样的
test_f = lambda x: x*x
print(test(3))
print(test_f(3))
# 常量函数
def constant():
    return 1
constant_f = lambda: 1
print(constant())
print(constant_f())

# 多变量函数
def product(x, y):
    return x*y
product_f = lambda x,y:x*y
print(product(3, 4))
print(product_f(3, 4))

# Python map() 是一个内置函数,它将给定的函数应用于迭代器iterable的每一项,并返回一个迭代器iterator对象。
# 注意的是Python2 map函数返回列表,Python3 map函数返回迭代器。
# map用法 map(函数,序列) 返回迭代对象,遍历出来即可用

def fun(x):
    return x*x
result = map(fun, [1,2,3,4,5,6])
print(result)

# result 只是对象需要遍历出来才能打印出具体的值
for i in result:
    print(i)

nums = [1, 2, 3, 4, 5, 6]
res = map(lambda x: x*x, nums)

for i in res:
    print(i)

# 当然lambada函数可以结合map()函数,输入两个参数,以下示例提供了两个列表,对两个列表中相同位置的数据进行相加
num1 = [1, 2, 3, 4, 5]
num2 = [6, 7, 8, 9, 10]
ret = map(lambda x, y: x+y, num1, num2)

for i in ret:
    print(i)

# Python lambda函数可以与filter()函数一起使用。 filte(函数,序列) 函数的作用是:从iterable中返回true的元素构造一个列表。
# filte()函数为python自带函数,主要用于过滤掉不符合设定条件的元素,并返回符合条件元素组成的迭代器iterable。
# 该函数有两个输入参数,第一个参数为处理函数,第二个参数为要处理的序列。序列的每个元素作为参数给函数进行判断,
# 返回True或 False,过滤到返回False的参数,并将返回 True 的元素放到迭代器中

def is_even(x):
    return x % 2 == 0
result = filter(is_even, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
print(result)
for i in result:
    print(i)
# lambda函数结合filter函数过滤了整数列表。新列表仅包含奇数整数。
# filter()中第一个函数为处理列表元素的函数,也就是lambda函数。
nums1 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
nums_f = list(filter(lambda x: x % 2, nums1))
print(nums_f)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值