Python函数式编程map()、reduce()

本文详细介绍了Python中map和reduce函数的使用方法及应用场景。通过具体示例展示了如何利用这两个函数处理列表数据,包括单个列表和多个列表的运算。

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

一、map()

格式:map(func, *iterables)
map函数接受两个参数,第一个是要执行的函数,第二个是可迭代对象,可迭代对象可以传入多个参数。

map()函数是将func作用于iterables中的每一个元素,并用一个列表给出返回值。如果func为None,作用同zip()。

传入一个可迭对象

def func(x):
    return x*x
lists = [1, 2, 3, 4]
l = list(map(func, lists))
print(l)

结果:[1, 4, 9, 16]

传入两个可迭对象

def func(x, y):
    return x+y

lists = [1, 2, 3, 4]
lists2 = [1, 2, 3, 4]
l = list(map(func, lists, lists2))
print(l)
结果:[2, 4, 6, 8]
二、reduce()

格式:reduce(function, sequence, initial=None)
reduce函数接受三个参数,第一个是要执行的函数,第二个是序列,第三个是默认值。第一个函数必须有两个参数。

reduce函数即为化简,它是这样一个过程:每次迭代,将上一次的迭代结果(第一次时为init的元素,如没有init则为seq的第一个元素)与下一个元素一同执行一个二元的func函数。在reduce函数中,init是可选的,如果使用,则作为第一次迭代的第一个元素使用。

例子:
不传入默认值

from functools import reduce

lists = ['a', 'b', 'c', 'd']
r = reduce(lambda x, y: x+y, lists)
print(r)

结果:abcd

传入默认值

from functools import reduce

lists = ['a', 'b', 'c', 'd']
r = reduce(lambda x, y: x+y, lists, '你好')
print(r)

结果:你好abcd
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值