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']