【Python笔记】Python函数式编程高阶函数 —— map

map

.

  • 描述

根据提供的函数对指定序列做映射

  • 语法
map(function,iterable,...)

mpa()函数接收两个参数,一个是函数,一个是Iterable,map将传入的函数依次作用到序列的每个元素,并把结果作为新的Iterator返回

a.function —— 函数
b.iterable(可迭代对象)—— 一个或多个序列

实例:

def f(x):
     renturn x * x
     
a = map(f,[1,2,3,4,5])
print(a)
# 输出结果<map object at 0x000002393F323F98>
  • 返回值

python 2.x 返回的是列表
python 3.x返回迭代器

  • 返回指定类型

因为用的是python 3.x所以返回的结果是一个迭代器

如果想让数据返回列表可以用到list()函数

def f(x):
    return x * x
    
a = map(f,[1,2,3,4,5])
b = list(a)
c = tuple(b)

print(b)
# 输出结果[1, 4, 9, 16, 25]

print(c)
# 输出结果(1,4,9,16,25)
  • map参数特殊情况

a.当函数(function)参数没有返回值时,map函数将返回一个有None组成的序列

def f(x):
    pass
    
a = map(f,[1,2,3,4,5])

print(list(a))
# 输出结果[None, None, None, None, None]

b.当函数(function)有多个参数时,可迭代对象也要传入对应数量

def f(x,y):
    return x * y
 
a = map(f,[1,3,5],[2,4,6])

print(list(a))
# 输出结果[2, 12, 30]

c.传入的多个可迭代对象长度不一致,会以最短的长度进行处理

def f(x,y):
    return x * y

a = map(f,[1,3,5,7,9],[2,4,6])

print(list(a))
# 输出结果[2,12,30]

小结:

map()作为高阶函数,事实上把运算规则抽象了,因此使用map函数不仅可以计算简单的f(x)=x*x,还可以计算任意复杂的函数

# 把list所有数字转换为字符串
a = map(str,[1,2,3,4,5])

print(list(a))
# 输出结果['1', '2', '3', '4', '5']
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值