网站首页 > 基础教程 正文
注:本文所有代码均经过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]
猜你喜欢
- 2024-11-02 Python函数式编程之map/reduce/filter进阶
- 2024-11-02 Python中map函数的奇淫技巧:优化你的编程体验
- 2024-11-02 python内置函数map/reduce/filter
- 2024-11-02 Python 内置函数与匿名函数 python匿名内部类
- 2024-11-02 第八篇:Python中函数介绍 python中的各种函数
- 2024-11-02 「每天3分钟学Python」Python中的 Map 和 Reduce
- 2024-11-02 Python中starmap有什么用的? python中start用法
- 2024-11-02 详解Python中的map、lambda和apply用法
- 2024-11-02 Python编程技巧:如何用Map, Filter, Reduce代替For循环?
- 2024-11-02 python lambda函数与map()、filter()、reduce()函数用法
- 最近发表
- 标签列表
-
- jsp (69)
- gitpush (78)
- gitreset (66)
- python字典 (67)
- dockercp (63)
- gitclone命令 (63)
- dockersave (62)
- linux命令大全 (65)
- pythonif (86)
- location.href (69)
- dockerexec (65)
- tail-f (79)
- queryselectorall (63)
- location.search (79)
- bootstrap教程 (74)
- 单例 (62)
- linuxgzip (68)
- 字符串连接 (73)
- html标签 (69)
- c++初始化列表 (64)
- mysqlinnodbmyisam区别 (63)
- arraylistadd (66)
- mysqldatesub函数 (63)
- window10java环境变量设置 (66)
- c++虚函数和纯虚函数的区别 (66)