python六十课——高阶函数之map
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的更多相关文章
- python六十三课——高阶函数之sorted
演示sorted函数的使用,以及和sort的区别:我们将sorted和sort进行一番比较:相同点:它们都是来实现排序的操作(功能层面)不同点:列表中的sort函数,它执行完毕后会直接影响原本这个li ...
- python六十一课——高阶函数之reduce
2).reduce(fn,lsd): 参数一:fn --> 函数对象 参数二:lsd --> 序列对象 功能: 先将lsd中的第一和第二个元素去除传入到fn中参与运算, 运算后得到结果,再 ...
- python 函数式编程:高阶函数,map/reduce
python 函数式编程:高阶函数,map/reduce #函数式编程 #函数式编程一个特点就是,允许把函数本身作为参数传入另一个函数,还允许返回一个函数 #(一)高阶函数 f=abs f print ...
- JavaScript学习笔记(十)——高阶函数之map,reduce,filter,sort
在学习廖雪峰前辈的JavaScript教程中,遇到了一些需要注意的点,因此作为学习笔记列出来,提醒自己注意! 如果大家有需要,欢迎访问前辈的博客https://www.liaoxuefeng.com/ ...
- Python学习笔记系列——高阶函数(map/reduce)
一.map #变量可以指向函数,函数的参数能接受变量,那么一个函数就可以接受另一个函数作为参数,这种函数被称之为高阶函数 def add(x,y,f): return f(x)+f(y) print( ...
- 【python】python函数式编程、高阶函数
1.map() : python内置的高阶函数,接收一个函数f和一个list,并通过把函数f依次作用在list的每个元素上,得到一个新的list并 返回. def f(x): r ...
- python入门16 递归函数 高阶函数
递归函数:函数内部调用自身.(要注意跳出条件,否则会死循环) 高阶函数:函数的参数包含函数 递归函数 #coding:utf-8 #/usr/bin/python """ ...
- python内置常用高阶函数(列出了5个常用的)
原文使用的是python2,现修改为python3,全部都实际输出过,可以运行. 引用自:http://www.cnblogs.com/duyaya/p/8562898.html https://bl ...
- python(内置高阶函数)
1.高阶函数介绍: 一个函数可以作为参数传给另外一个函数,或者一个函数的返回值为另外一个函数(若返回值为该函数本身,则为递归),如果满足其一,则为高阶函数. 常见的高阶函数:map().sorted( ...
随机推荐
- Linux 安装 JDK
本篇博客用于记录一下在 Linux 系统下安装 Java 环境. 在大部分的 Linux 系统中都有安装 Open JDK,所以最好是先卸载 Open JDK 后在进行我们的 JDK 安装.Open ...
- Python和Java分别实现冒泡排序
1.基本思想 冒泡排序的基本思想是对比相邻的元素值.相邻元素值比较,如果满足条件两者就交换,把较小的移动到前面,把较大的移动到后面,这样较小的元素就像气泡一样浮上来了.可以看出,冒泡排序的每一次循环都 ...
- [转]Angular——提示框
本文转自:https://blog.csdn.net/whm18322394724/article/details/80177950 版权声明:本文为博主原创文章,未经博主允许不得转载. https: ...
- .net Framework 源代码 · ScrollViewer
本文是分析 .net Framework 源代码的系列,主要告诉大家微软做 ScrollViewer 的思路,分析很简单 看完本文,可以学会如何写一个 ScrollViewer ,如何定义一个 ISc ...
- 2018年你需要知道的13个JavaScript工具库
译者按: 你可能已经用到Underscore或者Lodash.本文列举了13个常用的JavaScript工具库来提高开发效率. 原文: 11 Javascript Utility Libraries ...
- vue点击元素变色兄弟元素不变色
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- C++解析 xml,用到pugixml库
参考网站: https://www.cnblogs.com/haomiao/p/5041065.html https://blog.csdn.net/iot_change/article/detail ...
- 2017-12-22 日语编程语言"抚子"-第三版实现初探
前文日语编程语言"抚子" - 第三版特色初探仅对语言的语法进行了初步了解. 之前的语言原型实现尝试(如编程语言试验之Antlr4+JavaScript实现"圈4" ...
- React中props
今天让我们开启新的篇章好吧,来搞一搞React,以下所有操作都是我个人的一些理解,如果有错吴还请指出,想要看更全的可以去React官网可能一下子好吧 昨天按摩没到位,导致今天身体不太行,撸码千万别苦了 ...
- 关于z-index使用方法
z-index控制的是元素的层叠顺序,当z-index越大此层越靠上:但是z-index需在已给元素定位(定位方式不限)的前提下否则该属性失效!! jquery获取index值的方法: $(" ...