一、map函数

1、自定义函数,实现类似于map函数的功能

 num_l = [1,3,4,5,6,9]
def power(n):
return n ** 2
def map_test(func,array):
li0 = []
for i in array:
p = func(i)
li0.append(p)
return li0 f = map_test(power,num_l) 运用自己定义的函数来计算
print(f)
f = map_test(lambda x: x ** 2, num_l) #调用匿名函数实现简单的功能,减少代码量,以下几种类似
print(f) def add_one(n):
return n + 1 f1 = map_test(add_one,num_l)
print(f1)
f1 = map_test(lambda x: x+1, num_l)
print(f1) def reduce_one(n):
return n - 1 f2 = map_test(reduce_one,num_l)
print(f2)
f2 = map_test(lambda x: x - 1, num_l)
print(f2)
 [1, 9, 16, 25, 36, 81]
[1, 9, 16, 25, 36, 81]
[2, 4, 5, 6, 7, 10]
[2, 4, 5, 6, 7, 10]
[0, 2, 3, 4, 5, 8]
[0, 2, 3, 4, 5, 8]

2、map函数的运用:作用于成哥序列,让整个序列实现想要的转换

 ############n内置函数 map 的使用
num_l = [1,3,4,5,6,9]
f3 = map(lambda x:x + 3, num_l) # map(func, *iterables) --> map object 这是map函数官方解释
print(f3)
print(list(f3)) #注意细节:map返回只是一个object,需要用list形式打印出来 s = 'abcefg'
f4 = map(lambda st:st.upper(),s)
print(f4)
print(list(f4))
 <map object at 0x000001C6AC2B7860>
[4, 6, 7, 8, 9, 12]
<map object at 0x000001C6AC2B7898>
['A', 'B', 'C', 'E', 'F', 'G']

二、filter函数

1、自定义函数,实现类似于filter的功能

例1:铺垫

 bjper = ['bj_老王','bj_老赵','bj_老李','tian an men','gugong']
def filter_test(array):
li0 = []
li1 = []
for i in array:
if i.startswith('bj'):
li0.append(i)
if not i.startswith('bj'):
li1.append(i)
return li0,li1 f = filter_test(bjper)
print(f)
 (['bj_老王', 'bj_老赵', 'bj_老李'], ['tian an men', 'gugong'])

例2

 def show_bj(s):
return s.startswith('bj') bjper = ['bj_老王ha','bj_老赵','bj_老李','tian an menha','gugongha']
def filter_test(func,array):
li0 = []
for i in array:
if func(i):
li0.append(i)
return li0 f = filter_test(show_bj,bjper)
print(f)
# lambad 运用
f = filter_test(lambda s:s.endswith('ha'),bjper)
print(f)
 ['bj_老王ha', 'bj_老赵', 'bj_老李']
['bj_老王ha', 'tian an menha', 'gugongha']

2、filter函数运用:主要筛选出想要的元素

 ################ filter 应用:官方解释:filter(function or None, iterable) --> filter object
bjper = ['bj_老王ha','bj_老赵','bj_老李','tian an menha','gugongha']
def show_bj(s):
return s.startswith('bj')
f1 = filter(show_bj,bjper)
print(f1)
print(list(f1)) #注意细节:filter返回只是一个object,需要用list形式打印出来 f2 = filter(lambda st: not st.endswith('ha'),bjper)
print(f2)
print(list(f2))
 <filter object at 0x00000218E63A7898>
['bj_老王ha', 'bj_老赵', 'bj_老李']
<filter object at 0x00000218E63A78D0>
['bj_老赵', 'bj_老李']

三、reduce函数:

1、

例1

 num_l = [2,4,10,100]
init = 0
for i in num_l:
init += i
print(init)

结果:116

例2

 num_l = [2,4,10,100]
def sum_test(array):
init = 0
for i in array:
init += i
return init
f = sum_test(num_l)
print(f)

结果:116

例3

 num_l = [2,4,10,100]
init = 1
for i in num_l:
init *= i
print(init)

结果8000

例4

 num_l = [2,4,10,100]
def mul(array):
init = 1
for i in array:
init *= i
return init f = mul(num_l)
print(f)

结果:8000

例5

 num_l = [2,4,10,100]
def reduce_test(func,array,init=None):
init = array.pop(0)
for i in array:
init = func(init,i)
return init def product(x,y):
return x * y f = reduce_test(product,num_l,)
print(f)

结果:8000

例6

 num_l = [2,4,10,100]
def reduce_test(func,array,init=None):
if init == None:
res = array.pop(0)
else:
res = init
for i in array:
res = func(res,i)
return res def product(x,y):
return x * y f = reduce_test(product,num_l,4)
print(f)

结果:32000

例7

 ############# reduce 函数
#使用前需要导入reduce函数包
from functools import reduce num_l = [2,4,10,100]
def product(x,y):
return x * y f1 = reduce(product,num_l,5)
print(f1) f1 = reduce(lambda x,y: x + y + 1,num_l,1000)
print(f1)
 40000
1120

十一、python沉淀之路--map函数、filter函数、reduce函数、匿名函数、内置函数的更多相关文章

  1. Python成长之路第二篇(2)_列表元组内置函数用法

    列表元组内置函数用法list 元组的用法和列表相似就不一一介绍了 1)def append(self, p_object):将值添加到列表的最后 # real signature unknown; r ...

  2. python基础之递归,匿名,内置函数

    递归函数: 什么是递归函数? 函数递归调用:在调用一个函数的过程中,又直接或间接地调用了该函数本身. 递归必须要有两个明确的阶段: ①递推:一层一层递归调用下去,强调:每进入下一层问题规模减少 ②回溯 ...

  3. 函数进阶· 第3篇《常用内置函数filter()、map()、zip(),怎么用的呢?》

    坚持原创输出,点击蓝字关注我吧 作者:清菡 博客:oschina.云+社区.知乎等各大平台都有. 由于微信公众号推送改为了信息流的形式,防止走丢,请给加个星标 ,你就可以第一时间接收到本公众号的推送! ...

  4. python基础12_匿名_内置函数

    一个二分查找的示例: # 二分查找 示例 data = [1, 3, 6, 7, 9, 12, 14, 16, 17, 18, 20, 21, 22, 23, 30, 32, 33, 35, 36, ...

  5. Python全栈开发之3、深浅拷贝、变量和函数、递归、函数式编程、内置函数

    一.深浅拷贝 1.数字和字符串 对于 数字 和 字符串 而言,赋值.浅拷贝和深拷贝无意义,因为其永远指向同一个内存地址. import copy # 定义变量 数字.字符串 # n1 = 123 n1 ...

  6. Python——day14 三目运算、推导式、递归、匿名、内置函数

    一.三目(元)运算符 定义:就是 if...else...语法糖前提:简化if...else...结构,且两个分支有且只有一条语句注:三元运算符的结果不一定要与条件直接性关系​ cmd = input ...

  7. python之三元表达式与生成式与匿名与内置函数(部分)

    目录 三元表达式 各种生成式 列表生成式(可同样作用于集合) 字典生成式 匿名函数 重要内置函数 map() zip() filter() reduce() 常见内置函数(部分) 三元表达式 三元表达 ...

  8. Python函数的基本定义和调用以及内置函数

    首先我们要了解Python函数的基本定义: 函数是什么? 函数是可以实现一些特定功能的小方法或是小程序.在Python中有很多内建函数,当然随着学习的深入,你也可以学会创建对自己有用的函数.简单的理解 ...

  9. Python文件操作函数os.open、io.open、内置函数open之间的关系

    Python提供了多种文件操作方式,这里简单介绍os.open.io.open.内置函数open之间的关系: 一.内置函数open和io.open实际上是同一个函数,后者是前者的别名: 二.os.op ...

随机推荐

  1. const,var,let笔记

    js中定义变量的方式有三种const.var.let const 作用域:全局作用域或函数作用域 定义的变量不可修改,且必须初始化 eg: const a= 1; a= 2; console.log( ...

  2. CentOS 7如何将.deb文件转换.rpm

    1.首先下载alien工具 http://ftp.de.debian.org/debian/pool/main/a/alien/  http://ftp.de.debian.org/debian/po ...

  3. shell自动化一键部署脚本,秒级一键回滚脚本

    #!/bin/bash # Node List PRE_LIST="192.168.222.163" # 预生产环境节点 GROUP1_LIST= ROLLBACK_LIST=&q ...

  4. 正式学习React(四) ----Redux源码分析

    今天看了下Redux的源码,竟然出奇的简单,好吧.简单翻译做下笔记: 喜欢的同学自己可以去github上看:点这里 createStore.js import isPlainObject from ' ...

  5. session/token/cookie/socket区别

    Session:在计算机中,尤其是在网络应用中,称为“会话控制”.Session 对象存储特定用户会话所需的属性及配置信息.这样,当用户在应用程序的 Web 页之间跳转时,存储在 Session 对象 ...

  6. zabbix监控使用

    zabbix监控 通过导入/导出zabbix配置文件,我们可以将自己写好的模板等配置在网络上分享,我们也可以导入网络上分享的配置文件,配置文件有两种格式,分为xml与json,通过zabbix管理界面 ...

  7. Sqoop-将MySQL数据导入到hive orc表

    sqoop创建并导入数据到hive orc表 sqoop import \ --connect jdbc:mysql://localhost:3306/spider \ --username root ...

  8. Hyper:基于Hypervisor的容器化解决方案

    近日,初创公司HyperHQ发布了他们的开源项目Hyper,Hyper是一个可以在hypervisor上运行Docker镜像的引擎,它融合了Docker容器和虚拟机的优点,旨在打造一个性能更好.更安全 ...

  9. 栈的基本操作--java实现

    package com.wyl.linklist; /** * 栈的定义及相关操作 * 用数组实现栈 * 栈是一个线性表,不过进栈和出栈操作在表尾操作 * @author wyl * */ publi ...

  10. 解决:actual_tessdata_num_entries_ <= TESSDATA_NUM_ENTRIES:Error:Assert failed:in file ..\..\ccutil\tessdatamanager.cp p, line 50

    在玩tesseract时,发现如下报错: 这个是因为Tesseract-OCR的版本和chi_sim.traindata字库版本不匹配,由于我的Tesseract-OCR是3.02.02,去googl ...