0 语法描述

map()会根据提供的函数对指定序列做映射。

语法:

map(function, iterable, ...)

参数:

  • function函数
  • iterable一个或多个序列

第一个参数function以参数序列中的每一个元素调用function函数,返回包含每次function函数返回值的新列表。

注意:

map()函数返回一个惰性计算lazily evaluated的迭代器iteratormap对象。就像zip函数惰性计算那样。

不能通过index访问map对象的元素,也不能使用len()得到它的长度。
但我们可以强制转换map对象list

也就是说map()返回值使用一次后变为空(会在例子4中进行说明)

相对 Python2.x 提升了性能,惰性计算可以节约内存。

1 举例说明

例子1:基本用法

def square(x) :            # 计算平方数return x ** 2
print(map(square, [1,2,3,4,5]))   # 计算列表各个元素的平方
print(list(map(square, [1,2,3,4,5])))
for i in map(square, [1,2,3,4,5]):print(i)

例子2:与匿名函数合用

print(map(lambda x: x ** 2, [1, 2, 3, 4, 5]))   # 计算列表各个元素的平方
print(list(map(lambda x: x ** 2, [1, 2, 3, 4, 5])))
for i in map(lambda x: x ** 2, [1, 2, 3, 4, 5]):print(i)

例子3:输入两个列表

map_test = map(lambda x, y: x + y, [1, 3, 5, 7, 9], [2, 4, 6, 8, 10])
print(map_test)   # 计算列表各个元素的平方
for i in map_test:print(i)
print(list(map_test))   # 计算列表各个元素的平方

例子4:迭代器仅可使用一次的问题

可见第二次调用变成了空list

因为迭代器Iterator会调用方法next()不断指向下一个元素,直到空,报StopIteration错误。

map_test = map(lambda x, y: x + y, [1, 3, 5, 7, 9], [2, 4, 6, 8, 10])
print(map_test)   # 计算列表各个元素的平方
for i in map_test:print(i)
print(list(map_test))   # 计算列表各个元素的平方

规避这个惰性计算的问题,赋值的时候直接用list进行转换一下:

print("惰性计算")
map_test = map(lambda x, y: x + y, [1, 3, 5, 7, 9], [2, 4, 6, 8, 10])
print(list(map_test))
for i in map_test:print(i,end = " ")
print(list(map_test))
print("规避惰性计算")
map_test = list(map(lambda x, y: x + y, [1, 3, 5, 7, 9], [2, 4, 6, 8, 10]))
print(list(map_test))
for i in map_test:print(i,end = " ")
print(list(map_test))

例子5 与lambda迭代dictionary列表

dict_list = [{'name': 'python', 'points': 10}, {'name': 'java', 'points': 8}]
print(list(map(lambda x : x['name'], dict_list)))
print(list(map(lambda x : x['points']*10,  dict_list)))
print(list(map(lambda x : x['name'] == "python", dict_list)))

LAST 参考文献

Python map() 函数 | 菜鸟教程

Python的map()返回值使用一次后变为空——返回的是迭代器_光逝的博客-CSDN博客

关乎Python lambda你也看得懂 - 知乎

python中map的用法相关推荐

  1. Python中map()函数用法

    map() 是python的内置函数,会根据提供的函数对指定序列做映射. 对可迭代函数*iterables中的每个元素应用func方法,将结果作为迭代器对象返回. 注意:map()函数返回的是一个新的 ...

  2. python代码大全表解释-python中的字典用法大全的代码

    如下代码是关于python中的字典用法大全的代码. #!/usr/bin/env python # # [SNIPPET_NAME: Dictionaries 101] # [SNIPPET_CATE ...

  3. python代码大全-python中的字典用法大全的代码

    如下代码是关于python中的字典用法大全的代码. #!/usr/bin/env python # # [SNIPPET_NAME: Dictionaries 101] # [SNIPPET_CATE ...

  4. python中map()函数使用,数据类型转换

    python中map()函数进行数据转换 用法: map(function, iterable, -), 返回的是map型,(ps:python2中返回的是list型可以直接显示,但在python3中 ...

  5. python中map()函数无法输出

    目录 1.用法 2.输出 map返回是一个迭代器,需要转换成列表格式才能输出 1.用法 map(function, x) 如一下都是可以正常使用的方法,函数对x中每个元素进行计算 num = map( ...

  6. python中 map函数 的使用

    1. 概念 map函数也是python中的一个内置函数,用法同之前讲过的filter函数类似.map在这里的意思是映射的意思,会根据提供的函数对指定序列做映射. map函数会返回一个迭代器,如果要转换 ...

  7. 五分钟理解yield在python中的简单用法,让你不再迷惑

    很多同学无论是在学习python还是使用python的过程中,都会遇到yield关键字,这个让人头大的问题,今天,就给大家分享一下我自学yield的心路历程 基本概念: (1)在 Python 中,使 ...

  8. format函数python的顺序_[转载] Python中format函数用法

    Python中format函数用法 format优点 format是python2.6新增的格式化字符串的方法,相对于老版的%格式方法,它有很多优点. 1.不需要理会数据类型的问题,在%方法中%s只能 ...

  9. python教程实例-Python中函数的用法实例教程

    本文以数值计算为例讲述了Python中函数的用法,分享给大家供大家参考借鉴之用.具体如下: 我们都知道圆的面积计算公式为: S = πr2 当我们知道半径r的值时,就可以根据公式计算出面积.假设我们需 ...

最新文章

  1. 【C#技术】一篇文章搞掂:Infragistics组件库
  2. 英特尔发现Spectre和Meltdown 补丁对性能影响程度为0-21%
  3. 【Mood-9】搬家至博客园喽~~~
  4. 一种集各种优点于一身的技术面试方式--转
  5. 我的邮局系统,欢迎大家注册!hotxf.com
  6. r语言 中断r的输入_R语言_004数据输入
  7. dede手机站对应的php,Dede织梦(手机)移动端访问PC网址自动跳转对应m网址
  8. 【TensorFlow-windows】(一)实现Softmax Regression进行手写数字识别(mnist)
  9. 求锤得锤,你要的一致性 hash 来了! | 附代码
  10. 如何做到微信机器人不封号_利用 Xposed 快速实现一个简易微信机器人
  11. logistic人口模型python代码_用Matlab程序对logistic人口模型进行拟合?
  12. c语言创意作业蜂鸣器,蜂鸣器c语言程序_c语言编写蜂鸣器发声
  13. 像中文的罗马音字体复制_罗马音字体复制大全
  14. markdown中让表格居中的写法
  15. STM32固件库点灯
  16. 拜拜了Unable to connect to remote host. Catalog download has failed.您嘞
  17. Java 代码分享(第4篇),绘制迷宫2 绘制起点终点和路径
  18. 计算机教室冷量负荷,7.2空调负荷计算 - 民用建筑供暖通风与空气调节设计规范 GB50736-2012 - 消防规范大全 - 消防资源网!...
  19. 华清远见Qt作业网络聊天室1014
  20. 计算机桌面图片唐诗,唐诗高清壁纸

热门文章

  1. 你真知道sqrt(4)是多少吗
  2. HashMap之数组下标计算
  3. Windows 11默认系统壁纸4K原图提前出炉
  4. 图像处理Matlab阈值的设置imadjust(),graythresh(),im2bw()函数使用
  5. JavaScript中this面试题, 四道题彻底清楚this指向问题
  6. python教程五 数据类型转换
  7. 不定时搞事情篇 No.1 神途BOSS时间记录器
  8. SAP Marketing Cloud 功能概述(一)
  9. C51编程7-数码管(工作原理1)
  10. 带宽、码率、帧率、分辨率的基本概念