python中map的基本用法示例


Posted in Python onSeptember 10, 2018

map()函数

map() 会根据提供的函数对指定序列做映射,是内置函数

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

语法

map(function, iterable, ...)

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

1、当seq只有一个时,将函数func作用于这个seq的每个元素上,并得到一个新的seq。

python中map的基本用法示例

例如,对于list [1, 2, 3, 4, 5, 6, 7, 8, 9]

如果希望把list的每个元素都作平方,就可以用map()函数:

因此,我们只需要传入函数f(x)=x*x,就可以利用map()函数完成这个计算:

def f(x):
 return x*x
print map(f, [1, 2, 3, 4, 5, 6, 7, 8, 9])

输出结果:

[1, 4, 9, 10, 25, 36, 49, 64, 81]

注意:map()函数不改变原有的 list,而是返回一个新的 list。

利用map()函数,可以把一个 list 转换为另一个 list,只需要传入转换函数。

由于list包含的元素可以是任何类型,因此,map() 不仅仅可以处理只包含数值的 list,事实上它可以处理包含任意类型的 list,只要传入的函数f可以处理这种数据类型。

假设用户输入的英文名字不规范,没有按照首字母大写,后续字母小写的规则,请利用map()函数,把一个list(包含若干不规范的英文名字)变成一个包含规范英文名字的list:

输入:['adam', 'LISA', 'barT']

输出:['Adam', 'Lisa', 'Bart']

def format_name(s):
 s1=s[0:1].upper()+s[1:].lower();
 return s1;
print map(format_name, ['adam', 'LISA', 'barT'])

2、当seq多于一个时,map可以并行(注意是并行)地对每个seq执行如下图所示的过程:

python中map的基本用法示例

l2=map(lambda x,y:x**y,[1,2,3],[1,2,3])
for i in l2:
 print(i)

l3=map(lambda x,y:(x**y,x+y),[1,2,3],[1,2,3])
for i in l3:
 print(i)

python3中可以处理类表长度不一致的情况,但无法处理类型不一致的情况,
l4=map(lambda x,y:(x**y,x+y),[1,2,3],[1,2])
for i in l4:
 print(i)

l4=map(lambda x,y:(x**y,x+y),[1,2,3],[1,2,'a'])
for i in l4:
 print(i)

特殊用法,做类型转换: 

l=map(int,'1234')
for i in l:
 print(type(i))
 print(i)

如果函数是 None,自动假定一个‘identity'函数,这时候就是模仿 zip()函数,

l=[1,2,3]
x=map(None,l)
print(x)

这时候 None 类型不是一个可以调用的对象。所以他没法返回值。

目的是将多个列表相同位置的元素归并到一个元组。如:

>>> print map(None, [2,4,6],[3,2,1])
[(2, 3), (4, 2), (6, 1)]

但是在 python3中,返回是一个迭代器,所以它其实是不可调用的

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对三水点靠木的支持。

Python 相关文章推荐
python中global用法实例分析
Apr 30 Python
Python 使用requests模块发送GET和POST请求的实现代码
Sep 21 Python
python 获取当天每个准点时间戳的实例
May 22 Python
浅析python参数的知识点
Dec 10 Python
windows下安装Python虚拟环境virtualenvwrapper-win
Jun 14 Python
Python搭建Spark分布式集群环境
Jul 05 Python
DJANGO-URL反向解析REVERSE实例讲解
Oct 25 Python
ubuntu 18.04 安装opencv3.4.5的教程(图解)
Nov 04 Python
Python学习之路安装pycharm的教程详解
Jun 17 Python
python 判断一组数据是否符合正态分布
Sep 23 Python
python获取带有返回值的多线程
May 02 Python
Django框架中表单的用法
Jun 10 Python
python2 与 pyhton3的输入语句写法小结
Sep 10 #Python
django DRF图片路径问题的解决方法
Sep 10 #Python
详解python中Numpy的属性与创建矩阵
Sep 10 #Python
tensorflow使用神经网络实现mnist分类
Sep 08 #Python
Python unittest单元测试框架总结
Sep 08 #Python
tensorflow实现加载mnist数据集
Sep 08 #Python
使用tensorflow实现线性回归
Sep 08 #Python
You might like
php面向对象全攻略 (三)特殊的引用“$this”的使用
2009/09/30 PHP
php DOS攻击实现代码(附如何防范)
2012/05/29 PHP
PHP实现连接设备、通讯和发送命令的方法
2015/10/13 PHP
PHP Try-catch 语句使用技巧
2016/02/28 PHP
Yii2 rbac权限控制操作步骤实例教程
2016/04/29 PHP
jQuery一步一步实现跨浏览器的可编辑表格,支持IE、Firefox、Safari、Chrome、Opera
2009/08/28 Javascript
Jquery ThickBox插件使用心得(不建议使用)
2010/09/08 Javascript
jQuery让控件左右移动的三种实现方法
2013/09/08 Javascript
jquery滚动条插件jScrollPane的使用介绍
2013/11/08 Javascript
jQuery+CSS实现滑动的标签分栏切换效果
2015/12/17 Javascript
给easyui的datebox控件添加清空按钮的实现方法
2016/11/09 Javascript
百度搜索框智能提示案例jsonp
2016/11/28 Javascript
Bootstrap table使用方法详细介绍
2016/12/09 Javascript
JavaScript伪数组用法实例分析
2017/12/22 Javascript
基于vue中对鼠标划过事件的处理方式详解
2018/08/22 Javascript
layui 图片上传+表单提交+ Spring MVC的实例
2019/09/21 Javascript
element跨分页操作选择详解
2020/06/29 Javascript
vue-router 控制路由权限的实现
2020/09/24 Javascript
[01:03]DOTA2新的征程 你的脚印值得踏上
2014/08/13 DOTA
详解Django框架中的视图级缓存
2015/07/23 Python
Python实现二叉堆
2016/02/03 Python
Python实现的计数排序算法示例
2017/11/29 Python
详解Django rest_framework实现RESTful API
2018/05/24 Python
详解python中的线程与线程池
2019/05/10 Python
在python tkinter中Canvas实现进度条显示的方法
2019/06/14 Python
python实现串口自动触发工作的示例
2019/07/02 Python
python中图像通道分离与合并实例
2020/01/17 Python
django xadmin 管理器常用显示设置方式
2020/03/11 Python
HTML5 Canvas如何实现纹理填充与描边(Fill And Stroke)
2013/07/15 HTML / CSS
美国一家运动专业鞋类零售商:Warehouse Shoe Sale(WSS)
2018/03/28 全球购物
物控部经理职务说明书
2014/02/25 职场文书
各营销点岗位职责范本
2014/03/05 职场文书
合作与交流自我评价
2015/03/09 职场文书
2015暑假实习报告范文
2015/07/13 职场文书
Python中os模块的简单使用及重命名操作
2021/04/17 Python
Python-OpenCV教程之图像的位运算详解
2021/06/21 Python