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的web.py框架并从hello world开始编程
Apr 25 Python
Python字符串详细介绍
May 09 Python
python爬虫入门教程--HTML文本的解析库BeautifulSoup(四)
May 25 Python
Python设计模式之工厂模式简单示例
Jan 09 Python
numpy使用技巧之数组过滤实例代码
Feb 03 Python
python 基本数据类型占用内存空间大小的实例
Jun 12 Python
Python之list对应元素求和的方法
Jun 28 Python
24式加速你的Python(小结)
Jun 13 Python
python应用文件读取与登录注册功能
Sep 23 Python
python爬虫容易学吗
Jun 02 Python
基于python实现计算两组数据P值
Jul 10 Python
Python 实现Mac 屏幕截图详解
Oct 05 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
Joomla简单判断用户是否登录的方法
2016/05/04 PHP
javascript实现动态增加删除表格行(兼容IE/FF)
2007/04/02 Javascript
jquery中$each()方法的使用指南
2015/04/30 Javascript
浅谈JavaScript 标准对象
2016/06/02 Javascript
AngularJS中的API(接口)简单实现
2016/07/28 Javascript
vue双向数据绑定原理探究(附demo)
2017/01/17 Javascript
zTree树形插件异步加载方法详解
2017/06/14 Javascript
jQuery实现动态给table赋值的方法示例
2017/07/04 jQuery
jQuery动态添加元素无法触发绑定事件的解决方法分析
2018/01/02 jQuery
vue点击input弹出带搜索键盘并监听该元素的方法
2018/08/25 Javascript
JavaScript从原型到原型链深入理解
2019/06/03 Javascript
vue实现标签云效果的方法详解
2019/08/28 Javascript
Vue + element 实现多选框组并保存已选id集合的示例代码
2020/06/03 Javascript
Python-基础-入门 简介
2014/08/09 Python
使用Python构建Hopfield网络的教程
2015/04/14 Python
Python实现把回车符\r\n转换成\n
2015/04/23 Python
Python中的ctime()方法使用教程
2015/05/22 Python
python 系统调用的实例详解
2017/07/11 Python
20个常用Python运维库和模块
2018/02/12 Python
Python实现判断并移除列表指定位置元素的方法
2018/04/13 Python
浅谈python3发送post请求参数为空的情况
2018/12/28 Python
使用python3调用wxpy模块监控linux日志并定时发送消息给群组或好友
2019/06/05 Python
python for循环remove同一个list过程解析
2019/08/14 Python
python从zip中删除指定后缀文件(推荐)
2019/12/05 Python
tensorflow 环境变量设置方式
2020/02/06 Python
Python re正则表达式元字符分组()用法分享
2020/02/10 Python
使用python的pyplot绘制函数实例
2020/02/13 Python
pyCharm 设置调试输出窗口中文显示方式(字符码转换)
2020/06/09 Python
matplotlib 画双轴子图无法显示x轴的解决方法
2020/07/27 Python
解决Pycharm双击图标启动不了的问题(JetBrains全家桶通用)
2020/08/07 Python
python中xlutils库用法浅析
2020/12/29 Python
倩碧香港官方网站:Clinique香港
2017/11/13 全球购物
Schecker荷兰:狗狗用品和配件
2019/06/06 全球购物
前厅收银主管岗位职责
2014/02/04 职场文书
2015学校年度工作总结
2015/05/11 职场文书
小学数学国培研修日志
2015/11/13 职场文书