给程序来点美感--Python3中的Map和Reduce

Map & Reduce.jpg

一、Map

让我们先来一个问题,如何将a=[1,2,3,5,6]这个数组,转换成字符型的数组?

1.1 解法1

a=[1,2,3,5,6]
b=[str(i) for i in a]
print(b)
['1', '2', '3', '5', '6']

1.2 解法2

a=[1,2,3,5,6]
b=list(map(str,a))
print(b)
['1', '2', '3', '5', '6']

两种方法似乎都很好的解决了这个问题,那么Map比列表解析强在哪里呢?

list(map(lambda x,y:x*y,[1,2,3],[4,5,6]))
[4, 10, 18]

Map能接收多个Iterable,而列表解析一般只接受一个数组。
这是我自己找的栗子,如果有不对的地方,欢迎留言打脸啊

欢迎反复打脸.jpg

1.3 函数用法

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

二、Reduce

  • 对于Reduce的介绍,我觉得不需要进行介绍了,因为Reduce已经不在Python3 的标准库里了
    • 原因居然是:

因为 Guido 先生讨厌 reduce。(Because Guido [hates it]
(http://www.artima.com/weblogs/viewpost.jsp?thread=98196)

Reduce就被干掉了.png

秉承宁缺毋滥的精神,就暂且介绍这么多吧。
如果喜欢就给我点个赞呗,你的喜欢是我继续分享的动力

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。