python map函数1分钟数据生成5分钟_Python随笔5:Python内置序列函数之map函数

注:本文所有代码均经过Python 3.7实际运行检验,保证其严谨性。

今天接着Python随笔4之zip函数讨论另外一种内置序列函数:map函数。

map函数的具体语法是:

map(function, iterable, ...)——返回一个将function 应用于 iterable(即可迭代对象) 中的每一项元素,并输出其结果的迭代器(iterator)。

这是官方的解释,有点拗口,下面会分解。

其中的参数,function是一个函数,iterable是可迭代对象,最常见的可迭代对象是序列,如字符串、列表、元组等。

上面

关于本文中提到的可迭代对象(iterable)、迭代器(iterator)、序列(sequence)等概念如若不太明白,请移步Python随笔4查看相关概念的解释,在此不再赘述。

通俗地讲,map(function, iterable, ...)的作用就是,先让函数作用于列表中的每个元素,然后这些元素作用后新生成的元素再次组成一个数据集,这个数据集是迭代器,map函数的最终结果就是返回这么一个迭代器。

举个例子很容易理解:

def square(x):

return x ** 2

l = [1, 2, 3, 4]

list(map(square, l)) # map(square, l)是一个迭代器,需要通过list(map())查看迭代器里面的元素。

Out[7]: [1, 4, 9, 16]

上面的例子里,函数square()括号里面的参数只有1个,如果有2个,甚至更多,又是什么情况呢?举个例子如下:

def add(x, y):

return x + y

l1 = [1, 2, 3]

l2 = [3, 2, 1]

list(map(add, l1, l2))

Out[11]: [4, 4, 4]

由上面的例子不难发现其规律:对map(function, iterable, ...)函数而言,若是里面的function有几个参数,那么function后面就跟几个iterable(可迭代对象,在上面的例子中,指的是列表),毕竟function的作用对象是iterable。

最后,通常map(function, iterable)可以使用[function(x) for x in iterable]来代替,如上面的例子可以改为:

def square(x):

return x ** 2

l = [1, 2, 3, 4]

list(map(square, l))

Out[7]: [1, 4, 9, 16]

[square(x) for x in l]

Out[12]: [1, 4, 9, 16]

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值