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算法之栈(stack)的实现
Aug 18 Python
Python生成随机验证码的两种方法
Dec 22 Python
教你用Type Hint提高Python程序开发效率
Aug 08 Python
python 循环遍历字典元素的简单方法
Sep 11 Python
Python使用回溯法子集树模板获取最长公共子序列(LCS)的方法
Sep 08 Python
python实践项目之监控当前联网状态详情
May 23 Python
django foreignkey(外键)的实现
Jul 29 Python
python 使用shutil复制图片的例子
Dec 13 Python
Python实现投影法分割图像示例(二)
Jan 17 Python
Python终端输出彩色字符方法详解
Feb 11 Python
Python面向对象程序设计之继承、多态原理与用法详解
Mar 23 Python
Python WSGI 规范简介
Apr 11 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中Memcache操作类及用法实例
2014/12/12 PHP
详解PHP的Yii框架的运行机制及其路由功能
2016/03/17 PHP
PHP的重载使用魔术方法代码实例详解
2021/02/26 PHP
Javascript 表单之间的数据传递代码
2008/12/04 Javascript
js nextSibling属性和previousSibling属性概述及使用注意
2013/02/16 Javascript
表单类各种类型(文本框)失去焦点效果jquery代码
2013/04/26 Javascript
用js实现in_array的方法
2013/11/05 Javascript
一个简单的jquery进度条示例
2014/04/28 Javascript
javascript正则表达式参数/g与/i及/gi的使用指南
2014/08/27 Javascript
学习JavaScript正则表达式
2015/11/13 Javascript
jQuery实现定位滚动条位置
2016/08/05 Javascript
利用Js的console对象,在控制台打印调式信息测试Js的实现
2016/11/26 Javascript
利用jquery实现下拉框的禁用与启用
2016/12/07 Javascript
js实现PC端根据IP定位当前城市地理位置
2017/02/22 Javascript
vue filters的使用详解
2018/06/11 Javascript
vue全局使用axios的方法实例详解
2018/11/22 Javascript
Vue通过for循环随机生成不同的颜色或随机数的实例
2019/11/09 Javascript
js实现简单的日历显示效果函数示例
2019/11/25 Javascript
node.js Promise对象的使用方法实例分析
2019/12/26 Javascript
Python字符串替换实例分析
2015/05/11 Python
Python对列表排序的方法实例分析
2015/05/16 Python
Python中str is not callable问题详解及解决办法
2017/02/10 Python
python正则表达式面试题解答
2020/04/28 Python
Python切片索引用法示例
2018/05/15 Python
django将图片上传数据库后在前端显式的方法
2018/05/25 Python
python 对key为时间的dict排序方法
2018/10/17 Python
Python制作exe文件简单流程
2019/01/24 Python
Python Tkinter 简单登录界面的实现
2019/06/14 Python
Jupyter加载文件的实现方法
2020/04/14 Python
python 引用传递和值传递详解(实参,形参)
2020/06/05 Python
银行介绍信范文
2014/01/10 职场文书
学习雷锋寄语大全
2014/04/11 职场文书
大学生社团活动总结
2014/04/26 职场文书
做一个有道德的人活动方案
2014/08/25 职场文书
2014年图书管理员工作总结
2014/12/01 职场文书
智慧人生:永远不需要向任何人解释你自己
2019/08/20 职场文书