Python map函数总结

本文主要介绍如何使用Python(Python3版本)的内置map()函数。简单来说map()函数会将指定的函数依次作用于某个序列的每个元素,并返回一个迭代器对象。map语法如下,其中function表示我们指定的函数,iterable表示要作用的序列,这个序列可以是一个也可以是多个。

map(function, iterable, ...)

下面实例具体介绍map()的使用方法。关于map函数的更多使用介绍见本文参考部分。

1 使用

1.1 基础示例

应用map()在整数列表上

# 定义一个函数
def square(x): return x**2 # 序列
nums = [1, 2, 3, 4, 5] # 对nums序列每个数求平方,返回迭代器
nums_squared = map(square, nums) # 输出结果
for num in nums_squared: print(num)
1
4
9
16
25

如果要实现和以上map函数同等功能,需要自定义函数,例子如下,

# 定义一个函数
def square(x): return x * x # 序列
def mymap(func, iterable):
for i in iterable:
yield func(i) nums = [1, 2, 3, 4, 5] # 对nums序列每个数求平方,返回迭代器
nums_squared = mymap(square, nums) for num in nums_squared: print(num)
1
4
9
16
25

当然我们也可以将上面例子中的square函数用lambda代码,例子如下:

nums = [1, 2, 3, 4, 5] 

nums_squared = map(lambda x: x*x, nums) 

for num in nums_squared:
print(num)
1
4
9
16
25

1.2 具有多个可迭代对象的 Python 映射

我们可以将多个可迭代对象传递给map()函数,然后map函数将这两个迭代对象传入指定的函数。注意map函数必须采用与可迭代对象一样多的参数,具体如下所示:

# 定义一个函数
# 该函数必须采用两个参数,因为有两个可迭代对象传递给map()
def multiply(x, y): return x * y # 序列1
nums1 = [1, 2, 3, 4, 5]
# 序列2
nums2 = [6, 7, 8, 9, 10] # 每次从nums1和nums2中取值
mult = map(multiply, nums1, nums2) for num in mult:
print(num)
6
14
24
36
50

1.3 Python映射多个函数

在以下示例中,我们将展示如何在 Python中使用map()映射多个函数。我们遍历for循环中的元素。在每个循环中,我们创建一个包含两个值的列表,这些结果是通过对传入参数应用add()和square()函数来计算的。

# 函数1
def add(x):
return x + x # 函数2
def square(x):
return x * x # 数据
nums = [1, 2, 3, 4, 5] # 逐个取数处理
for i in nums: # lambda为处理函数,分别将add和square传给lambda
vals = list(map(lambda x: x(i), (add, square))) print(vals)
[2, 1]
[4, 4]
[6, 9]
[8, 16]
[10, 25]

1.4 基于列表推导实现map函数

Python的map()也可以通过Python列表推导来实现。

# 定义函数
def square(x): return x * x nums = [1, 2, 3, 4, 5] # 列表推导式相当于每次从nums中取一个数放入square中
nums_squared = [square(num) for num in nums] for num in nums_squared: print(num)
1
4
9
16
25

2 参考

[python] Python map函数总结的更多相关文章

  1. python的map()函数

    map()是 Python 内置的高阶函数,它接收一个函数 f 和一个 list,并通过把函数 f 依次作用在 list 的每个元素上,得到一个新的 list 并返回. 例如,对于list [1, 2 ...

  2. Python中map()函数浅析

    MapReduce的设计灵感来自于函数式编程,这里不打算提MapReduce,就拿python中的map()函数来学习一下. 文档中的介绍在这里: map(function, iterable, .. ...

  3. Python中map函数

    1.简介 python 提供内置函数map(), 接收两个参数,一个是函数,一个是序列,map将传入的函数依次作用到序列的每个元素,并把结果作为新的list返回.例如: (1)对于list [1, 2 ...

  4. python的map函数和reduce函数(转)

    map函数 map()函数 map()是 Python 内置的高阶函数,它接收一个函数 f 和一个 list,并通过把函数 f 依次作用在 list 的每个元素上,得到一个新的 list 并返回. 例 ...

  5. python中map()函数

    map()是 Python 内置的高阶函数,它接收一个函数 f 和一个 list,并通过把函数 f 依次作用在 list 的每个元素上,得到一个新的 list 并返回. map()是 Python 内 ...

  6. python的map函数的使用方法详解以及使用案例(处理每个元素的自增、自减、平方等)

    1.用我们之前学过的求一下平方(只有一个列表) #求平方 num=[1,5,6,2,7,8] a=[] for n in num: a.append(n**2) print (a) C:\python ...

  7. python 3 map函数用法

    公式 f是定义的函数,l是你的list,所有功能都在f函数里完成, map(f,l) 有些网址爬虫出来的链接是一部分,省略了前端通用的,这时我们需要补充进去, 这时就用到了map函数,批量补充网址, ...

  8. python中map()函数的用法讲解

    map函数的原型是map(function, iterable, -),它的返回结果是一个列表. 参数function传的是一个函数名,可以是python内置的,也可以是自定义的. 参数iterabl ...

  9. python:map 函数

    map(func, *iterables) --> map object map()是 Python 内置的高阶函数,它接收一个函数 func 和一个 list(*iterables),并通过把 ...

  10. python之Map函数

    # map()函数使用举例 # 功能:map()接受一个函数f和一个或多个list,将f依次作用在list的每个元素,得到一个新的列表 # 语法:map(方法名,列表,[列表2]) # 注意:map( ...

随机推荐

  1. 洛谷P1496 火烧赤壁 (模拟/离散化+差分)

    分析可知:将起点和终点按照从小到大的顺序排序,对答案不会产生影响 所以此时我们得到一种模拟做法: 1 #include<bits/stdc++.h> 2 using namespace s ...

  2. sql语句优化小结

    sql的优化技巧. 1.用join进行子查询的优化. 低效的子查询 select a.user_name,a.over,(select over from user2 b where a.user_n ...

  3. 详解商业智能“前世今生”,“嵌入式BI”到底是如何产生的?

    嵌入式分析是使任何应用程序或用户更容易获得数据分析和商业智能的技术. 商业智能是通过分析业务数据辅助决策获取数据背后的 0信息. 商业智能软件和技术包含了报表查询,OLAP,数据挖掘及高级数据分析,最 ...

  4. 右击存放项目的文件夹出现 open with Visual Studio Code 的打开方式

    最终效果 步骤1: 找到 Visual Studio Code 的安装位置 (右击桌面Visual Studio Code 图标-->属性-->打开文件夹所在位置) 新建一个可以编辑的 c ...

  5. (Java初学篇)IDEA项目新建流程和软件配置优化以及怎么彻底删除项目

    相信很多小伙伴们在初学 Java 时都会出现这样的情况,就是在网上一顿搜索加捣鼓终于把 JDK 和IDEA 这两款软件安装配置好,但是发现面对这个陌生的软件此时却无从下手,那么接下来我就给大家简单地介 ...

  6. 消除两个inline-block元素之间的间隔

    发现问题 两个inline-block元素之间的间隔.如下图 期望 消除两个inline-block元素之间的间隔. 解决方法 1.父元素字体大小设置为0 间隔的形成是非元素标签形成的 /** 方案1 ...

  7. composer 报错 The "https://mirrors.aliyun.com/composer/p....json" file could not be downloaded (HTTP/1.1 404 Not Found)

    [Composer\Downloader\TransportException] The "https://mirrors.aliyun.com/composer/p/provider-20 ...

  8. Vue学习之--------组件嵌套以及VueComponent的讲解(代码实现)(2022/7/23)

    欢迎加入刚建立的社区:http://t.csdn.cn/Q52km 加入社区的好处: 1.专栏更加明确.便于学习 2.覆盖的知识点更多.便于发散学习 3.大家共同学习进步 3.不定时的发现金红包(不多 ...

  9. win10设置或更改硬盘图标

    1.首先要找到".ico"的图标素材,存放在要更改图标的硬盘根目录,可命名为a.ico.图片素材大家可以去一些素材网找找,一般可以找到很多. 2.在该硬盘分区空白处鼠标右键新建一个 ...

  10. python关于Django搭建简单博客项目(详解一)

    上一篇我们说了如何搭建简易博客网站,下面我们来进行详细解答.本文没有特定顺序,请结合上一篇和源代码参照学习. 相关源代码和解析请参看:https://github.com/Cheng0829/mysi ...