1.高阶函数:

特点:函数的形参位置必须接受一个函数对象

分类学习:

1).map(fn,lsd1,[lsd2...]):

参数一:fn --> 函数对象

参数二:lsd1 --> 序列对象(字符串、列表、range...)

功能:

将fn函数作用于lsd1中的每一个元素上,

将每次执行的结果存入到一个map对象中返回;

【注意】得到的这个map对象是一个迭代器对象

需求:lt = ['1','2','3','4','5'] --> [1,2,3,4,5]

map(int,lt):执行过程如下:

1).lt --> 取出第一个元素:'1'当做实际参数传递给int函数的形参位置 --> int('1')

将转换以后的结果:1保留到map对象的第一个元素位置

2).lt --> 取出第二个元素:'2'当做实际参数传递给int函数的形参位置 --> int('2')

将转换以后的结果:2保留到map对象的第二个元素位置

以此类推...

直到map函数执行完了,整个map对象才真正成型了...

高阶函数之:
map(fn,lsd1,[lsd2,...])
参数一:fn --> 函数对象
参数二:lsd1 --> 序列对象(字符串、列表、range...)
功能:
将fn函数作用于lsd1中的每一个元素上,
将每次执行的结果存入到一个map对象中返回;
【注意】得到的这个map对象是一个迭代器对象
import collections
#需求:lt = ['1','2','3','4','5'] --> [1,2,3,4,5]
lt = ['','','','',''] #代码实现一:使用老技术来实现
lt1 = []
for i in lt:
num=int(i)
lt1.append(num)
#由于列表对象是非惰性序列,可以直接打印看到内容
# print(lt1) #代码实现二:使用新技术解决
#步骤一:定义一个函数功能:将str数据-->int数据
def chr2Int(chr):
# return {'0':0,'1':1,'2':2,'3':3,'4':4,'5':5,'6':6,'7':7,'8':8,'9':9}[chr]
return int(chr) mo=map(chr2Int,lt) '''
map类型的对象在打印过程中不能直接看到其中的元素值,
所以map对象是一个惰性序列对象
'''
print(mo,type(mo))
print(isinstance(mo,collections.Iterator)) print(next(mo))
print(next(mo)) '''
将map对象(惰性的)转换为list对象(非惰性的)
'''
print(list(mo)) #代码实现三:终极版(一步到位)
print(list(map(chr2Int,lt)))
print(list(map(int,lt)))
代码:
map(int,lt):执行过程如下:
1).lt --> 取出第一个元素:'1'当做实际参数传递给int函数的形参位置 --> int('1')
将转换以后的结果:1保留到map对象的第一个元素位置
2).lt --> 取出第二个元素:'2'当做实际参数传递给int函数的形参位置 --> int('2')
将转换以后的结果:2保留到map对象的第二个元素位置
以此类推...
直到map函数执行完了,整个map对象才真正成型了...
#需求1:lt = [1,2,3,4,5] --> 效果:['1','2','3','4','5']
#需求2:lt = [1,2,3,4,5] --> 效果:[1,4,9,16,25]
lt=[1,2,3,4,5]
#自定义函数:将int-->str
def int2Str(i):
return str(i)
print(list(map(int2Str,lt)))
print(list(map(str,lt)))
print(list(map(lambda x:str(x),lt))) #自定义函数:实现开方操作
def kaifang(num):
return num**2
print(list(map(kaifang,lt)))
print(list(map(lambda x:x**2,lt)))
返回目录

python六十课——高阶函数之map的更多相关文章

  1. python六十三课——高阶函数之sorted

    演示sorted函数的使用,以及和sort的区别:我们将sorted和sort进行一番比较:相同点:它们都是来实现排序的操作(功能层面)不同点:列表中的sort函数,它执行完毕后会直接影响原本这个li ...

  2. python六十一课——高阶函数之reduce

    2).reduce(fn,lsd): 参数一:fn --> 函数对象 参数二:lsd --> 序列对象 功能: 先将lsd中的第一和第二个元素去除传入到fn中参与运算, 运算后得到结果,再 ...

  3. python 函数式编程:高阶函数,map/reduce

    python 函数式编程:高阶函数,map/reduce #函数式编程 #函数式编程一个特点就是,允许把函数本身作为参数传入另一个函数,还允许返回一个函数 #(一)高阶函数 f=abs f print ...

  4. JavaScript学习笔记(十)——高阶函数之map,reduce,filter,sort

    在学习廖雪峰前辈的JavaScript教程中,遇到了一些需要注意的点,因此作为学习笔记列出来,提醒自己注意! 如果大家有需要,欢迎访问前辈的博客https://www.liaoxuefeng.com/ ...

  5. Python学习笔记系列——高阶函数(map/reduce)

    一.map #变量可以指向函数,函数的参数能接受变量,那么一个函数就可以接受另一个函数作为参数,这种函数被称之为高阶函数 def add(x,y,f): return f(x)+f(y) print( ...

  6. 【python】python函数式编程、高阶函数

    1.map() : python内置的高阶函数,接收一个函数f和一个list,并通过把函数f依次作用在list的每个元素上,得到一个新的list并            返回. def f(x): r ...

  7. python入门16 递归函数 高阶函数

    递归函数:函数内部调用自身.(要注意跳出条件,否则会死循环) 高阶函数:函数的参数包含函数 递归函数 #coding:utf-8 #/usr/bin/python """ ...

  8. python内置常用高阶函数(列出了5个常用的)

    原文使用的是python2,现修改为python3,全部都实际输出过,可以运行. 引用自:http://www.cnblogs.com/duyaya/p/8562898.html https://bl ...

  9. python(内置高阶函数)

    1.高阶函数介绍: 一个函数可以作为参数传给另外一个函数,或者一个函数的返回值为另外一个函数(若返回值为该函数本身,则为递归),如果满足其一,则为高阶函数. 常见的高阶函数:map().sorted( ...

随机推荐

  1. 阿里云服务器 Mysql数据库的安装和使用

    为了做服务迁移,mysql的安装总是不那么顺利, 教程很多, 但都不能够一蹴而就, 所以,单独总结一篇, 当然也借鉴了一些前辈的经验. ================================ ...

  2. MySQL基准测试(二)--方法

    MySQL基准测试(二)--方法 目的: 方法不是越高级越好.而应该善于做减法.至简是一种智慧,首先要做的是收集MySQL的各状态数据.收集到了,不管各个时间段出现的问题,至少你手上有第一时间的状态数 ...

  3. 因 URL 意外地以“/HelloWorld”结束,请求格式无法识别。

    WebService中发布之后出现这个错误, 解决方法: web.config文件中的 <system.web> 节点下加入:<webServices>    <prot ...

  4. html页面字体相关

    <!doctype html> <html> <head> <meta charset="utf-8"/> <title> ...

  5. parseInt转换

    function parse2Int(num) { return parseInt(num,10); } 如果 string 以 "0x" 开头,parseInt() 会把 str ...

  6. Javascript异步编程之二回调函数

    上一节讲异步原理的时候基本上把回掉函数也捎带讲了一些,这节主要举几个例子来具体化一下.在开始之前,首先要明白一件事,在javascript里函数可以作为参数进行传递,这里涉及到高阶函数的概念,大家可以 ...

  7. spark (java API) 在Intellij IDEA中开发并运行

    概述:Spark 程序开发,调试和运行,intellij idea开发Spark java程序. 分两部分,第一部分基于intellij idea开发Spark实例程序并在intellij IDEA中 ...

  8. SuperMap 三维产品资料一览表

    转自:http://blog.csdn.net/supermapsupport/article/details/68924713 如何能快速地开发项目中的三维功能呢?本文为您提供全方位的三维资料,为您 ...

  9. Tsung 超详细的的tsung性能测试资料

    超详细的的tsung性能测试资料 by:授客 QQ:1033553122 由于篇幅问题,采用链接分享的形式 下载连接:理解Tsung配置文件 下载连接:基准测试方法 下载连接:Tsung XML配置文 ...

  10. Tsung CentOS 操作系统下搭建tsung性能测试环境_Part 2

    CentOS 操作系统下搭建tsung性能测试环境_Part 2 by:授客 QQ:1033553122 --------------------接CentOS 操作系统下搭建tsung性能测试环境_ ...