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利用BeautifulSoup解析Html的方法示例
Jul 30 Python
django 通过ajax完成邮箱用户注册、激活账号的方法
Apr 17 Python
Python拼接微信好友头像大图的实现方法
Aug 01 Python
浅谈python连续赋值可能引发的错误
Nov 10 Python
pygame游戏之旅 创建游戏窗口界面
Nov 20 Python
Python实现 版本号对比功能的实例代码
Apr 18 Python
如何在Python中实现goto语句的方法
May 18 Python
在Python中过滤Windows文件名中的非法字符方法
Jun 10 Python
python mysql断开重连的实现方法
Jul 26 Python
Python无头爬虫下载文件的实现
Apr 02 Python
Python自动发送和收取邮件的方法
Aug 12 Python
Django与AJAX实现网页动态数据显示的示例代码
Feb 24 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
一个简单实现多条件查询的例子
2006/10/09 PHP
PHPLog php 程序调试追踪工具
2009/09/09 PHP
解决File size limit exceeded 错误的方法
2013/06/14 PHP
smarty模板中拼接字符串的方法
2014/02/14 PHP
浅析ThinkPHP中execute和query方法的区别
2014/06/13 PHP
php将图片保存为不同尺寸图片的图片类实例
2015/03/30 PHP
CakePHP框架Session设置方法分析
2017/02/23 PHP
yii 2.0中表单小部件的使用方法示例
2017/05/23 PHP
php+ajax实现无刷新文件上传功能(ajaxuploadfile)
2018/02/11 PHP
jquery showModelDialog的使用方法示例详解
2013/11/19 Javascript
js二维数组定义和初始化的三种方法总结
2014/03/03 Javascript
jQuery实时显示鼠标指针位置和键盘ASCII码
2016/03/28 Javascript
Jquery元素追加和删除的实现方法
2016/05/24 Javascript
一览画面点击复选框后获取多个id值的方法
2016/05/30 Javascript
js实现可键盘控制的简单抽奖程序
2016/07/13 Javascript
Javascript 数组去重的方法(四种)详解及实例代码
2016/11/24 Javascript
利用原生JS与jQuery实现数字线性变化的动画
2017/02/24 Javascript
Javascript中的getter和setter初识
2017/08/17 Javascript
Vue.js表单标签中的单选按钮、复选按钮和下拉列表的取值问题
2017/11/22 Javascript
微信小程序项目实践之九宫格实现及item跳转功能
2018/07/19 Javascript
vue 通过绑定事件获取当前行的id操作
2020/07/27 Javascript
[59:15]完美世界DOTA2联赛PWL S2 LBZS vs FTD.C 第一场 11.20
2020/11/20 DOTA
使用PYTHON创建XML文档
2012/03/01 Python
SQLite3中文编码 Python的实现
2017/01/11 Python
python识别图像并提取文字的实现方法
2019/06/28 Python
Python秒算24点实现及原理详解
2019/07/29 Python
在Django admin中编辑ManyToManyField的实现方法
2019/08/09 Python
Python类继承和多态原理解析
2020/02/05 Python
python实现梯度下降算法的实例详解
2020/08/17 Python
世界最大的票务市场:viagogo
2017/02/16 全球购物
还款承诺书范文
2014/05/20 职场文书
2015年党员公开承诺事项
2015/04/27 职场文书
企业廉洁教育心得体会
2016/01/20 职场文书
六年级情感作文之500字
2019/10/23 职场文书
详解nginx.conf 中 root 目录设置问题
2021/04/01 Servers
vue-element-admin项目导入和导出的实现
2021/05/21 Vue.js