python map 详解
python中的map函数应用于每一个可迭代的项,返回的是一个结果list。如果有其他的可迭代参数传进来,map函数则会把每一个参数都以相应的处理函数进行迭代处理。map()函数接收两个参数,一个是函数,一个是序列,map将传入的函数依次作用到序列的每个元素,并把结果作为新的list返回。
示例一:
有一个list, L = [1,2,3,4,5,6,7,8],我们要将f(x)=x^2作用于这个list上,那么我们可以使用map函数处理。
>>> L = [1,2,3,4,]
>>> def pow2(x):
... return x*x
>>> map(pow2,L)
[1, 4, 9, 16]
如果给出了额外的可迭代参数,则对每个可迭代参数中的元素同时的应用‘function’。
>>> def mknum(a,b,c):
... return a*10000+b*100+c
...
>>> l1 = [10,20,30]
>>> l2 = [40,50,60]
>>> l3 = [70,80,90]
>>> map(mknum,l1,l2,l3)
[104070, 205080, 306090]
结果表明,map函数对每个list取相同的下标做了mknum函数处理。
示例二:利用map()函数,把用户输入的不规范的英文名字,变为首字母大写,其他小写的规范名字。输入:[‘adam’, ‘LISA’, ‘barT’],输出:[‘Adam’, ‘Lisa’,‘Bart’]。
#!/usr/bin/env python
def chname(name):
n = 0
for a in name:
if n==0:
cname = a.upper()
else:
cname = cname + a.lower()
n = n+1
return cname
print map(chname,['bob','jeAN','jessica'])
示例三:
>>> def abc(a, b, c):
... return a*10000 + b*100 + c
...
>>> list1 = [11,22,33]
>>> list2 = [44,55,66]
>>> list3 = [77,88,99]
>>> map(abc,list1,list2,list3)
[114477, 225588, 336699]
看到并行的效果了吧!在每个list中,取出了下标相同的元素,执行了abc()。
示例四:
>>> list1 = [11,22,33]
>>> map(None,list1)
[11, 22, 33]
>>> list1 = [11,22,33]
>>> list2 = [44,55,66]
>>> list3 = [77,88,99]
>>> map(None,list1,list2,list3)
[(11, 44, 77), (22, 55, 88), (33, 66, 99)]
示例五:
>>> def add100(x):
... return x + 100
...
>>> list1 = [11,22,33]
>>> map(add100,list1)
[101, 102, 103] >>> [add100(i) for i in list1]
[101, 102, 103]
示例六:
>>> def abc(a, b, c):
... return a*10000 + b*100 + c
...
>>> list1 = [11,22,33]
>>> list2 = [44,55,66]
>>> list3 = [77,88,99]
>>> map(abc,list1,list2,list3)
[114477, 225588, 336699]
python map 详解的更多相关文章
- Python Collections详解
Python Collections详解 collections模块在内置数据结构(list.tuple.dict.set)的基础上,提供了几个额外的数据结构:ChainMap.Counter.deq ...
- Python闭包详解
Python闭包详解 1 快速预览 以下是一段简单的闭包代码示例: def foo(): m=3 n=5 def bar(): a=4 return m+n+a return bar >> ...
- Sass map详解
作为一个CSS预处理器,Sass正受到越来越多的青睐,诸如Github.Codepen.CSS-Tricks.SitePoint.w3cplus等网站采用Sass组织.管理CSS文件,Sass正在逐渐 ...
- [转] Python Traceback详解
追莫名其妙的bugs利器-mark- 转自:https://www.jianshu.com/p/a8cb5375171a Python Traceback详解 刚接触Python的时候,简单的 ...
- python 数据类型详解
python数据类型详解 参考网址:http://www.cnblogs.com/linjiqin/p/3608541.html 目录1.字符串2.布尔类型3.整数4.浮点数5.数字6.列表7.元组8 ...
- Python 递归函数 详解
Python 递归函数 详解 在函数内调用当前函数本身的函数就是递归函数 下面是一个递归函数的实例: 第一次接触递归函数的人,都会被它调用本身而搞得晕头转向,而且看上面的函数调用,得到的结果会 ...
- python线程详解
#线程状态 #线程同步(锁)#多线程的优势在于可以同时运行多个任务,至少感觉起来是这样,但是当线程需要共享数据时,可能存在数据不同步的问题. #threading模块#常用方法:'''threadin ...
- python数据类型详解(全面)
python数据类型详解 目录1.字符串2.布尔类型3.整数4.浮点数5.数字6.列表7.元组8.字典9.日期 1.字符串1.1.如何在Python中使用字符串a.使用单引号(')用单引号括起来表示字 ...
- python生成器详解
1. 生成器 利用迭代器(迭代器详解python迭代器详解),我们可以在每次迭代获取数据(通过next()方法)时按照特定的规律进行生成.但是我们在实现一个迭代器时,关于当前迭代到的状态需要我们自己记 ...
随机推荐
- 数字签名算法(C#)
public static string GetSHA1Method(string strSource) { string strResult = ""; //Create Sys ...
- Terminix:基于 GTK3 的平铺式 Linux 终端模拟器
现在,你可以很容易的找到大量的 Linux 终端模拟器,每一个都可以给用户留下深刻的印象.但是,很多时候,我们会很难根据我们的喜好来找到一款心仪的日常使用的终端模拟器.这篇文章中,我们将会推荐一款叫做 ...
- Mapnik读取PostGIS数据渲染图片
__author__ = 'Administrator' # encoding: utf-8 import sys import datetime import mapnik m = mapnik.M ...
- spring_restful_json_jdbc
使用Spring MVC +JDBC 实现输出Json数据和视图两种形式 最后面有源代码 从web.xml開始配置: 声明定义两个Servlet各自是输出视图和json <!-- 声明一个Ser ...
- Silverlight 之 创建
Silverlight 项目文件是您可以使用不同工具来创建和编辑的文本文件.例如,可以使用 Visual Studio 2010 以及 Expression Blend 来创建 Silve ...
- 在MyEclipse中配置Weblogic10服务器
MyEclipse中配置Weblogic10服务器 在MyEclipse中配置Weblogic10服务器也是很简单,现在将过程分享给有需要的人. 1.在下方的Server选项卡中,鼠标右键选择“Con ...
- 第十一节,命名空间namespace
1,命名空间的定义 命名空间可以把不同的方法分散到不同的文件去实现,如果你会objective-C,他的作用和里面的类目有异曲同工之妙.当然了也有很多不同的地方,首先要明白的是,命名空间并不是一个类, ...
- 每日一句英语:怎样回答美国人的How is it going问候语?
和中国人"吃了吗"是一个性质,本质上仅仅是个话题的起始点,而不是真的想知道你吃了没有. 美国人打招呼有几种方式: 不太熟的人:How are you? 一 般说 pretty go ...
- window下redis nosql初试
1:redis官方下载地址http://redis.io/download 下载下来,有32位的,有64位的,自己选择. 2:将redis文件夹放到D盘:D:\redis watermark/2/ ...
- JDBC的简单操作
JDBC是一组能够执行SQL语句的API 由于传统的数据库操作方式需要程序员掌握各个不同的数据库的API,极其不便 因此java定义了JDBC这一标准的接口和类,为程序员操作数据库提供了统一的方式 J ...