当前位置:   article > 正文

python中高阶函数map怎么用_python六十课——高阶函数之map

*map(fn

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六十三课——高阶函数之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( ...

随机推荐

PHP_VERSION_ID是如何定义的

PHP_VERSION_ID是一个整数,表示当前PHP的版本,从php5.2.7版本开始使用的,比如50207表示5.2.7.和PHP版本相关的宏定义在文件 phpsrcdir/main/php_ve ...

Android 尺寸单位转换和屏幕适配相关

Android 尺寸单位转换和屏幕适配相关 各种尺寸单位的意义 dp: Density-independent Pixels 一个抽象的单元,基于屏幕的物理密度. (dp和dip的意义相同,所以不用区 ...

webapp开发需要注意的浏览器内核知识

Web App:1.开发成本较低使用web开发技术就可以轻松的完成web app的开发2.升级较简单升级不需要通知用户,在服务端更新文件即可,用户完全没有感觉3.维护比较轻松和一般的web一样,维护比 ...

BZOJ-1968 COMMON 约数研究 数论+奇怪的姿势

1968: [Ahoi2005]COMMON 约数研究 Time Limit: 1 Sec Memory Limit: 64 MB Submit: 1513 Solved: 1154 [Submit] ...

windows下安装nodejs尝尝鲜

放Node.js作者镇楼! 1.下载对应的安装文件:http://nodejs.cn/download/ 2.自定义安装到D:\Program Files\nodejs,Add To Path一定要选 ...

剑指offer--面试题7

//两个栈实现一个队列 #include //STL #include using namespace std; template

Microsoft Internet Explorer 远程代码执行漏洞(CVE-2013-3186)(MS13-059)

漏洞版本: Microsoft Internet Explorer 6 - 10 漏洞描述: BUGTRAQ ID: 61663 CVE(CAN) ID: CVE-2013-3186 Windows ...

UILabel的size根据文字的长短变化

UILabel *label = [[UILabel alloc] init]; label.backgroundColor = [UIColor blackColor]; [self.view a ...

PHP-FPM的STATUS显示配置

希望能在优化PHP-FPM方面作一个改进.. 参考URL: http://www.ttlsa.com/php/use-php-fpm-status-page-detail/ http://www.li ...

Hibernate(三)——框架中的关系映射

在设计数据库时我们会考虑,表与表之间的关系,例如我们前边经常提到的一对一,一对多,多对多关系,在数据库中我们通过外键,第三张表等来实现这些关系.而Hibernate时间实体类和数据库中的表进行的映射, ...

声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop】
推荐阅读
相关标签
  

闽ICP备14008679号