一、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. 高亮显示UILabel中的子串

    I. 用户在搜索框中,输入关键字进行检索时,APP对搜索结果进行显示,有以下两种情况: 1. 匹配一次,如检索关键字为人名 这种情况,实现比较容易.写一个UILabel的category, 用rang ...

  2. combox datagrid重复请求问题

    html代码中利用class声明了datagrid,导致easyUI解析class代码的时候先解析class声明中的datagrid,这样组件就请求了一次url:然后又调用js初始化代码请求一次url ...

  3. Cacti的基本安装配置

    ////////////////////cacti///////////////////////////常用的监控软件有:cacti.nagios.zabbix等 cacti 重图形.有数据历史.需要 ...

  4. 手把手教你用Vue2+webpack+node开发一个H5 app

    手把手教你用Vue2+webpack+node开发一个H5 app ​前一篇vue2 + webpack + node 开发一个小demo说到了用vue的一些基本用法,这一篇就讲一个复杂一点的更完整的 ...

  5. Linux软件安装-----apache安装

    一. ./configure --prefix=/usr/local/http2 \ --enable-modules=all \ --enble-mods-shared=all \ 开启模块共享: ...

  6. 浅谈 django Models中的跨表

    跨表操作在数据库操作非常常用,虽然其会降低读取数据的性能,但是它能节约数据在硬盘中的占用,优化数据表的结构和各自之间的关系. 在sql中,一般跨表需要用到 join 关键字 select * from ...

  7. selenium学习笔记(智能等待)

    博主在尝试对百度首页用selenium完成自动登录的功能 反复多次尝试元素定位方法也未写错.最后发现问题原因: 脚本运行速度快于页面加载速度 如百度首页登录例子.脚本已经开始寻找登录弹窗 但是页面仍在 ...

  8. 5.8 页面对象(Page Object)模式

    页面对象(Page Object)模式是目前自动化测试领域普遍使用的设计模式之一,此模式可以大大提高测试代码的复用率,提高测试脚本的编写效率和维护效率,是中级自动化测试工程师的必备技能之一. 1.页面 ...

  9. Selenium with Python 005 - 调用js操作页面元素

    WebDriver提供了execute_script()方法来执行JavaScript方法,格式如 driver.execute_script(script,*args) 执行js一般有两种场景,一是 ...

  10. 四 web爬虫,scrapy模块标签选择器下载图片,以及正则匹配标签

    标签选择器对象 HtmlXPathSelector()创建标签选择器对象,参数接收response回调的html对象需要导入模块:from scrapy.selector import HtmlXPa ...