1、用我们之前学过的求一下平方(只有一个列表)

#求平方

num=[1,5,6,2,7,8]

a=[]for n innum:

a.append(n**2)print(a)

C:\python35\python3.exe D:/pyproject/day14函数/map函数.py

[1, 25, 36, 4, 49, 64]

2、写成函数,这样在有多个列表的时候只要调用一下这个函数就可以了

num=[1,5,6,2,7,8]

num_1=[22,333,11,55,66]defmap_atest(array):

ret=[]for n inarray:

ret.append(n**2)returnret

ret=map_atest(num)

ret1=map_atest(num_1)print(ret)print(ret1)

C:\python35\python3.exe D:/pyproject/day14函数/map函数.py

[1, 25, 36, 4, 49, 64]

[484, 110889, 121, 3025, 4356]

3、现在需求又变了。要求列表里面的每个数自增加1

num=[1,5,6,2,7,8]

num_1=[22,333,11,55,66]def add_one(x):#1.定义一个自增1的函数

return x+1

def add_reduce_one(x):#2.定义一个自减1的函数

return x-1

def map_atest(func,array):#3.定义一个函数,需要穿2个参数

ret = []#4.1定义一个空列表

for n in array:#这个array是num传进来的列表,做for循环

res=func(n)#func就是add_one这个函数,传的值是n,就把n自增加了1 add_one(n),然后赋值给变量

ret.append(res)returnretprint(map_atest(add_one,num))#4. 传2个参数add_one num 这2个都是函数

print(map_atest(add_one,num_1))

C:\python35\python3.exe D:/pyproject/day14函数/map函数.py

[2, 6, 7, 3, 8, 9]

[23, 334, 12, 56, 67]

我们把自增1和自减1都写成了函数,这样在下面一调用函数,把列表传进去就可以了

num=[1,5,6,2,7,8]

num_1=[22,333,11,55,66]def add_one(x):#1.定义一个自增1的函数

return x+1

def add_reduce_one(x):#2.定义一个自减1的函数

return x-1

def map_atest(func,array):#3.定义一个函数,需要穿2个参数

ret = []#4.1定义一个空列表

for n in array:#这个array是num传进来的列表,做for循环

res=func(n)#func就是add_one这个函数,传的值是n,就把n自增加了1 add_one(n),然后赋值给变量

ret.append(res)returnretprint(map_atest(add_reduce_one,num))#4. 传2个参数add_reduceone num 这2个都是函数

print(map_atest(add_reduce_one,num_1))

C:\python35\python3.exe D:/pyproject/day14函数/map函数.py

[0,4, 5, 1, 6, 7]

[21, 332, 10, 54, 65]

4、在添加一个求平方的函数

这样子看起来很灵活了,还不够好

num=[1,5,6,2,7,8]

num_1=[22,333,11,55,66]def add_one(x):#1.定义一个自增1的函数

return x+1

def reduce_one(x):#2.定义一个自减1的函数

return x-1

defpf_one(x):return x**2

def map_atest(func,array):#3.定义一个函数,需要穿2个参数

ret = []#4.1定义一个空列表

for n in array:#这个array是num传进来的列表,做for循环

res=func(n)#func就是add_one这个函数,传的值是n,就把n自增加了1 add_one(n),然后赋值给变量

ret.append(res)returnretprint(map_atest(add_one,num))#4. 传2个参数add_one num 这2个都是函数

print(map_atest(reduce_one,num_1))print(map_atest(pf_one,num_1))

C:\python35\python3.exe D:/pyproject/day14函数/map函数.py

[2, 6, 7, 3, 8, 9]

[21, 332, 10, 54, 65]

[484, 110889, 121, 3025, 4356]

5、在上面的基础上,在进行精简,刚刚学了匿名函数,现在我们就可以用上了

def add_one(x):#1.定义一个自增1的函数

return x+1这个函数就等于lambda x:x+1

def add_reduce_one(x):#2.定义一个自减1的函数

return x-1这个函数等于lambda x:x-1

defpf_one(x):return x**2这个函数等于lambda x:x**2

然后最后精简完成就是下面这样了,用了3个lambda代替了3个函数。代码更少了

num=[1,5,6,2,7,8]

num_1=[22,333,11,55,66]def map_atest(func,array):#3.定义一个函数,需要穿2个参数

ret = []#4.1定义一个空列表

for n in array:#这个array是num传进来的列表,做for循环

res=func(n)#func就是add_one这个函数,传的值是n,就把n自增加了1 add_one(n),然后赋值给变量

ret.append(res)returnretprint(map_atest(lambda x:x+1,num))#4. 传2个参数add_one num 这2个都是函数

print(map_atest(lambda x:x-1,num_1))print(map_atest(lambda x:x**2,num_1))

C:\python35\python3.exe D:/pyproject/day14函数/map函数.py

[2, 6, 7, 3, 8, 9]

[21, 332, 10, 54, 65]

[484, 110889, 121, 3025, 4356]

6、我们来看下map函数的用法,打印出来的是一个内存地址

#我们看下系统内置函数map

print (map(lambda x:x+1,num))

C:\python35\python3.exe D:/pyproject/day14函数/map函数.py

map处理的一个结果是一个迭代器,只能迭代一次

rec=map(lambda x:x+1,num)for n in(rec):print(n)

C:\python35\python3.exe D:/pyproject/day14函数/map函数.py

[2, 6, 7, 3, 8, 9]2

6

7

3

8

9

rec=map(lambda x:x+1,num)#for n in (rec):#print (n)

print(list(rec))

C:\python35\python3.exe D:/pyproject/day14函数/map函数.py

[2, 6, 7, 3, 8, 9]

[2, 6, 7, 3, 8, 9]

7、总结map函数的用法,需要传2个参数,在python内部,就相当于一个for循环,把每次遍历的那个数字交给这个处理方法

map(一个处理方法,一个可迭代对象)

8、map后面不一定用lambda,只用自定义函数也可以的

num=[1,5,6,2,7,8]def add_one(x):#1.定义一个自增1的函数

return x+1

print(list(map(add_one,num)))

C:\python35\python3.exe D:/pyproject/day14函数/map函数.py

[2, 6, 7, 3, 8, 9]

9、map函数处理字符串,把字符串都变成大写

msg="gouguqoi"list(map(lambda x:x.upper(),msg))

上面的代码是这样形成的

第一步

msg="gouguqoi"map(lambdax:x.upper(),msg)

第二步

msg="gouguqoi"list(map(lambdax:x.upper(),msg))

第三步

msg="gouguqoi"

print (list(map(lambda x:x.upper(),msg)))

10、将列表里面的元素变成字符串的类型

num=[1,5,6,2,7,8]print(list(map(lambdax:str(x),num)))print(list(map(str,num)))

['1', '5', '6', '2', '7', '8']

['1', '5', '6', '2', '7', '8']

map总结:

处理序列中的每个元素,得到的结果是一个“列表”(迭代器),该“列表”个数已位置与原来一样,然后把每个元素依次交给前面的这个处理方法,最后得到一个列表的结果

python的map函数求取每个元素的平方根_python的map函数的使用方法详解以及使用案例(处理每个元素的自增、自减、平方等)......相关推荐

  1. python标准库random中函数的作用_Python随机函数库random的使用方法详解

    Python随机函数库random的使用方法详解 前言 众所周知,python拥有丰富的内置库,还支持众多的第三方库,被称为胶水语言,随机函数库random,就是python自带的标准库,他的用法极为 ...

  2. python支持向量机回归_Python中支持向量机SVM的使用方法详解

    除了在Matlab中使用PRTools工具箱中的svm算法,Python中一样可以使用支持向量机做分类.因为Python中的sklearn库也集成了SVM算法,本文的运行环境是Pycharm. 一.导 ...

  3. python创建双链表_Python双链表原理与实现方法详解

    本文实例讲述了Python双链表原理与实现方法.分享给大家供大家参考,具体如下: Python实现双链表 文章目录 Python实现双链表 单链表与双链表比较 双链表的实现 定义链表节点 初始化双链表 ...

  4. python中update是啥意思_python中update的基本使用方法详解

    前言 Python 字典 update()方法用于更新字典中的键/值对,可以修改存在的键对应的值,也可以添加新的键/值对到字典中. 语法格式 d.update(e) 参数说明 将e中键-值对添加到字典 ...

  5. 基于python的贝叶斯分类器_Python实现朴素贝叶斯分类器的方法详解

    本文实例讲述了Python实现朴素贝叶斯分类器的方法.分享给大家供大家参考,具体如下: 贝叶斯定理 贝叶斯定理是通过对观测值概率分布的主观判断(即先验概率)进行修正的定理,在概率论中具有重要地位. 先 ...

  6. python修改文件内容_Python批量修改文本文件内容的方法详解

    这篇文章主要介绍了Python批量修改文本文件内容的方法的相关资料,需要的朋友可以参考下 Python批量替换文件内容,支持嵌套文件夹 import os path="./" fo ...

  7. python计算平方用map函数_python的map函数的使用方法详解以及使用案例(处理每个元素的自增、自减、平方等)...

    1.用我们之前学过的求一下平方(只有一个列表) #求平方 num=[1,5,6,2,7,8] a=[]for n innum: a.append(n**2)print(a) C:python35pyt ...

  8. c fun函数求n个整数的平均值_Python语法示例——函数

    12_Python语法示例(函数) 1.写一个函数mysum,此函数带有两个参数x,y打印出两个参数x,y的和 def mysum(x, y): print(x + y)mysum(3, 2) 2.写 ...

  9. 用python做透视表_python制作数据透视表pivot_table方法详解

    数据透视表(Pivot Table)是一种交互式的表,可以进行某些计算,如求和与计数等.所进行的计算与数据跟数据透视表中的排列有关. 之所以称为数据透视表,是因为可以动态地改变它们的版面布置,以便按照 ...

最新文章

  1. updatechecker.java_解决ehcache的UpdateChecker问题
  2. Tautology(poj3295)(DFS)
  3. python学习实例(2)
  4. edHat linux光盘引导,[原]个性化Linux发行版光盘之补充——XZ(LZMA算法)
  5. 如何调试程序的 Release 版本
  6. python argparse(参数解析)模块学习(二)
  7. Idea中找不到Java Application 的xml配置文件问题研究
  8. Python-URL编码和URL解码方法
  9. Android将网页转为pDf,UrlToPDF 输入网址直接将网页转存为 PDF 档(Android)
  10. PICKIT3 WIN10 无法连接问题解决
  11. 【转】美国百所大学招生网专页~
  12. 只有长大了,才认识父亲
  13. link和import的区别,src和href的区别,css hark 以及HTML5及css3的新增特性
  14. 泰克示波器TBS2000B 在大学基础实验室的应用
  15. 现役大学生必看!干货满满!
  16. gitlab设置自动备份
  17. 【CAD】【个人习惯】十字光标大小和自定义右键单击
  18. linux命令之ls
  19. 通达OA远程代码执行漏洞通告
  20. POJ - 2955 Brackets (区间DP)

热门文章

  1. Python基础语法毕业笔记-最简单的添加删除程序
  2. Qt/C++工作笔记-对vector与QVector中erase操作的进一步认识(区别与联系)
  3. C/C++ OpenCV高斯滤波
  4. 会计云课堂实名认证后怎么更改_会计云课堂怎么听课 网上听课步骤详解
  5. char装cstring_VC中char*转换为CString
  6. mysql导入数据库注释乱码_source命令 导入.sql文件时,中文乱码 或者是注释乱码...
  7. html js 控制span值,根据显示/隐藏span标签/ Javascript组设置span文本?
  8. 第十二届交博会正式启动 百度智慧交管解决方案助城市开启智能交通新纪元
  9. mfc socket onreceive函数不被调用_不报错地调用空指针类的成员函数
  10. 支付系统中订单redis防重的使用